docstr: Count encoding for categorical features.
  
  For a given categorical feature, replace the names of the groups
  with the group counts.
  
  Parameters
  ----------
  
  verbose: int
      integer indicating verbosity of output. 0 for none.
  cols: list
      a list of columns to encode, if None, all string and categorical columns
      will be encoded.
  drop_invariant: bool
      boolean for whether or not to drop columns with 0 variance.
  return_df: bool
      boolean for whether to return a pandas DataFrame from transform
      (otherwise it will be a numpy array).
  handle_missing: str
      how to handle missing values at fit time. Options are 'error', 'return_nan',
      and 'value'. Default 'value', which treat NaNs as a countable category at
      fit time.
  handle_unknown: str, int or dict of {column : option, ...}.
      how to handle unknown labels at transform time. Options are 'error'
      'return_nan', 'value' and int. Defaults to None which uses NaN behaviour
      specified at fit time. Passing an int will fill with this int value.
  normalize: bool or dict of {column : bool, ...}.
      whether to normalize the counts to the range (0, 1). See Pandas `value_counts`
      for more details.
  min_group_size: int, float or dict of {column : option, ...}.
      the minimal count threshold of a group needed to ensure it is not
      combined into a "leftovers" group. Default value is 0.01. 
      If float in the range (0, 1),
      `min_group_size` is calculated as int(X.shape[0] * min_group_size).
      Note: This value may change type based on the `normalize` variable. If True
      this will become a float. If False, it will be an int.
  min_group_name: None, str or dict of {column : option, ...}.
      Set the name of the combined minimum groups when the defaults become
      too long. Default None. In this case the category names will be joined
      alphabetically with a `_` delimiter.
      Note: The default name can be long and may keep changing, for example, 
      in cross-validation.
  combine_min_nan_groups: bool or dict of {column : bool, ...}.
      whether to combine the leftovers group with NaN group. Default True. Can
      also be forced to combine with 'force' meaning small groups are effectively
      counted as NaNs. Force can only be used when 'handle_missing' is 'value' or 'error'.
      Note: Will not force if it creates a binary or invariant column.
  
  
  Example
  -------
  >>> import pandas as pd
  >>> from sklearn.datasets import fetch_openml
  >>> from category_encoders import CountEncoder
  
  >>> bunch = fetch_openml(name="house_prices", as_frame=True)
  >>> display_cols = ["Id", "MSSubClass", "MSZoning", "LotFrontage", "YearBuilt", "Heating", "CentralAir"]
  >>> y = bunch.target
  >>> X = pd.DataFrame(bunch.data, columns=bunch.feature_names)[display_cols]
  >>> enc = CountEncoder(cols=['CentralAir', 'Heating']).fit(X, y)
  >>> numeric_dataset = enc.transform(X)
  >>> print(numeric_dataset.info())
  <class 'pandas.core.frame.DataFrame'>
  RangeIndex: 1460 entries, 0 to 1459
  Data columns (total 7 columns):
   #   Column       Non-Null Count  Dtype  
  ---  ------       --------------  -----  
   0   Id           1460 non-null   float64
   1   MSSubClass   1460 non-null   float64
   2   MSZoning     1460 non-null   object 
   3   LotFrontage  1201 non-null   float64
   4   YearBuilt    1460 non-null   float64
   5   Heating      1460 non-null   int64  
   6   CentralAir   1460 non-null   int64  
  dtypes: float64(4), int64(2), object(1)
  memory usage: 80.0+ KB
  None
  
  References
  ----------
docstr_tok: ["Count","encoding","for","categorical","features",".","For","a","given","categorical","feature",",","replace","the","names","of","the","groups","with","the","group","counts",".","Parameters","--","--","--","--","--","verbose",":","int","integer","indicating","verbosity","of","output",".","0","for","none",".","cols",":","list","a","list","of","columns","to","encode",",","if","None",",","all","string","and","categorical","columns","will","be","encoded",".","drop_invariant",":","bool","boolean","for","whether","or","not","to","drop","columns","with","0","variance",".","return_df",":","bool","boolean","for","whether","to","return","a","pandas","DataFrame","from","transform","(","otherwise","it","will","be","a","numpy","array",")",".","handle_missing",":","str","how","to","handle","missing","values","at","fit","time",".","Options","are","'error","'",",","'return_nan","'",",","and","'value","'",".","Default","'value","'",",","which","treat","NaNs","as","a","countable","category","at","fit","time",".","handle_unknown",":","str",",","int","or","dict","of","{","column",":","option",",","...","}",".","how","to","handle","unknown","labels","at","transform","time",".","Options","are","'error'","'return_nan","'",",","'value","'","and","int",".","Defaults","to","None","which","uses","NaN","behaviour","specified","at","fit","time",".","Passing","an","int","will","fill","with","this","int","value",".","normalize",":","bool","or","dict","of","{","column",":","bool",",","...","}",".","whether","to","normalize","the","counts","to","the","range","(","0",",","1",")",".","See","Pandas","`","value_counts","`","for","more","details",".","min_group_size",":","int",",","float","or","dict","of","{","column",":","option",",","...","}",".","the","minimal","count","threshold","of","a","group","needed","to","ensure","it","is","not","combined","into","a","``","leftovers","''","group",".","Default","value","is","0.01",".","If","float","in","the","range","(","0",",","1",")",",","`","min_group_size","`","is","calculated","as","int","(","X.shape","[","0","]","*","min_group_size",")",".","Note",":","This","value","may","change","type","based","on","the","`","normalize","`","variable",".","If","True","this","will","become","a","float",".","If","False",",","it","will","be","an","int",".","min_group_name",":","None",",","str","or","dict","of","{","column",":","option",",","...","}",".","Set","the","name","of","the","combined","minimum","groups","when","the","defaults","become","too","long",".","Default","None",".","In","this","case","the","category","names","will","be","joined","alphabetically","with","a","`","_","`","delimiter",".","Note",":","The","default","name","can","be","long","and","may","keep","changing",",","for","example",",","in","cross-validation",".","combine_min_nan_groups",":","bool","or","dict","of","{","column",":","bool",",","...","}",".","whether","to","combine","the","leftovers","group","with","NaN","group",".","Default","True",".","Can","also","be","forced","to","combine","with","'force","'","meaning","small","groups","are","effectively","counted","as","NaNs",".","Force","can","only","be","used","when","'handle_missing","'","is","'value","'","or","'error","'",".","Note",":","Will","not","force","if","it","creates","a","binary","or","invariant","column",".","Example","--","--","--","-",">",">",">","import","pandas","as","pd",">",">",">","from","sklearn.datasets","import","fetch_openml",">",">",">","from","category_encoders","import","CountEncoder",">",">",">","bunch","=","fetch_openml","(","name=","''","house_prices","''",",","as_frame=True",")",">",">",">","display_cols","=","[","``","Id","''",",","``","MSSubClass","''",",","``","MSZoning","''",",","``","LotFrontage","''",",","``","YearBuilt","''",",","``","Heating","''",",","``","CentralAir","''","]",">",">",">","y","=","bunch.target",">",">",">","X","=","pd.DataFrame","(","bunch.data",",","columns=bunch.feature_names",")","[","display_cols","]",">",">",">","enc","=","CountEncoder","(","cols=","[","'CentralAir","'",",","'Heating","'","]",")",".fit","(","X",",","y",")",">",">",">","numeric_dataset","=","enc.transform","(","X",")",">",">",">","print","(","numeric_dataset.info","(",")",")","<","class","'pandas.core.frame.DataFrame","'",">","RangeIndex",":","1460","entries",",","0","to","1459","Data","columns","(","total","7","columns",")",":","#","Column","Non-Null","Count","Dtype","--","-","--","--","--","--","--","--","--","--","--","--","--","--","-","0","Id","1460","non-null","float64","1","MSSubClass","1460","non-null","float64","2","MSZoning","1460","non-null","object","3","LotFrontage","1201","non-null","float64","4","YearBuilt","1460","non-null","float64","5","Heating","1460","non-null","int64","6","CentralAir","1460","non-null","int64","dtypes",":","float64","(","4",")",",","int64","(","2",")",",","object","(","1",")","memory","usage",":","80.0+","KB","None","References","--","--","--","--","--"]
code: def __init__(
      self,
      verbose=0,
      cols=None,
      drop_invariant=False,
      return_df=True,
      handle_unknown="value",
      handle_missing="value",
      min_group_size=None,
      combine_min_nan_groups=None,
      min_group_name=None,
      normalize=False,
  ):
      """Count encoding for categorical features.
  
      For a given categorical feature, replace the names of the groups
      with the group counts.
  
      Parameters
      ----------
  
      verbose: int
          integer indicating verbosity of output. 0 for none.
      cols: list
          a list of columns to encode, if None, all string and categorical columns
          will be encoded.
      drop_invariant: bool
          boolean for whether or not to drop columns with 0 variance.
      return_df: bool
          boolean for whether to return a pandas DataFrame from transform
          (otherwise it will be a numpy array).
      handle_missing: str
          how to handle missing values at fit time. Options are 'error', 'return_nan',
          and 'value'. Default 'value', which treat NaNs as a countable category at
          fit time.
      handle_unknown: str, int or dict of {column : option, ...}.
          how to handle unknown labels at transform time. Options are 'error'
          'return_nan', 'value' and int. Defaults to None which uses NaN behaviour
          specified at fit time. Passing an int will fill with this int value.
      normalize: bool or dict of {column : bool, ...}.
          whether to normalize the counts to the range (0, 1). See Pandas `value_counts`
          for more details.
      min_group_size: int, float or dict of {column : option, ...}.
          the minimal count threshold of a group needed to ensure it is not
          combined into a "leftovers" group. Default value is 0.01.
          If float in the range (0, 1),
          `min_group_size` is calculated as int(X.shape[0] * min_group_size).
          Note: This value may change type based on the `normalize` variable. If True
          this will become a float. If False, it will be an int.
      min_group_name: None, str or dict of {column : option, ...}.
          Set the name of the combined minimum groups when the defaults become
          too long. Default None. In this case the category names will be joined
          alphabetically with a `_` delimiter.
          Note: The default name can be long and may keep changing, for example,
          in cross-validation.
      combine_min_nan_groups: bool or dict of {column : bool, ...}.
          whether to combine the leftovers group with NaN group. Default True. Can
          also be forced to combine with 'force' meaning small groups are effectively
          counted as NaNs. Force can only be used when 'handle_missing' is 'value' or 'error'.
          Note: Will not force if it creates a binary or invariant column.
  
  
      Example
      -------
      >>> import pandas as pd
      >>> from sklearn.datasets import fetch_openml
      >>> from category_encoders import CountEncoder
  
      >>> bunch = fetch_openml(name="house_prices", as_frame=True)
      >>> display_cols = ["Id", "MSSubClass", "MSZoning", "LotFrontage", "YearBuilt", "Heating", "CentralAir"]
      >>> y = bunch.target
      >>> X = pd.DataFrame(bunch.data, columns=bunch.feature_names)[display_cols]
      >>> enc = CountEncoder(cols=['CentralAir', 'Heating']).fit(X, y)
      >>> numeric_dataset = enc.transform(X)
      >>> print(numeric_dataset.info())
      <class 'pandas.core.frame.DataFrame'>
      RangeIndex: 1460 entries, 0 to 1459
      Data columns (total 7 columns):
       #   Column       Non-Null Count  Dtype
      ---  ------       --------------  -----
       0   Id           1460 non-null   float64
       1   MSSubClass   1460 non-null   float64
       2   MSZoning     1460 non-null   object
       3   LotFrontage  1201 non-null   float64
       4   YearBuilt    1460 non-null   float64
       5   Heating      1460 non-null   int64
       6   CentralAir   1460 non-null   int64
      dtypes: float64(4), int64(2), object(1)
      memory usage: 80.0+ KB
      None
  
      References
      ----------
  
      """
      super().__init__(
          verbose=verbose,
          cols=cols,
          drop_invariant=drop_invariant,
          return_df=return_df,
          handle_unknown=handle_unknown,
          handle_missing=handle_missing,
      )
      self.mapping = None
      self.normalize = normalize
      self.min_group_size = min_group_size
      self.min_group_name = min_group_name
      self.combine_min_nan_groups = combine_min_nan_groups
      self.ordinal_encoder = None
  
      self._check_set_create_attrs()
  
      self._min_group_categories = {}
      self._normalize = {}
      self._min_group_name = {}
      self._combine_min_nan_groups = {}
      self._min_group_size = {}
      self._handle_unknown = {}
      self._handle_missing = {}
  
file_path: category_encoders/category_encoders/count.py
imports: import numpy
  import pandas
  import category_encoders.utils
  from category_encoders.ordinal import OrdinalEncoder
  from copy import copy
label_desc: Use image node_id 1 to create a new CountEncoder object from inherited base classes: util, util with example: obj = CountEncoder(verbose, cols, drop_invariant, return_df, handle_unknown, handle_missing, min_group_size, combine_min_nan_groups, min_group_name, normalize)