gators.imputers.ObjectImputer¶
-
class
gators.imputers.
ObjectImputer
(strategy: str, value: str = None, columns=None, inplace: bool = True)[source]¶ Impute the categorical columns using the strategy passed by the user.
- Parameters
- strategystr
Imputation strategy.
Supported imputation strategies are:
‘constant’
‘most_frequent’
- valuestr, default None.
Imputation value used for strategy=constant.
- inplaceList[float], default None.
If True, impute in-place. If False, create new imputed columns.
See also
gators.imputers.NumericsImputer
Impute numerical columns.
Examples
>>> from gators.imputers import ObjectImputer
The imputation can be done for the selected categorical columns
>>> obj = ObjectImputer(strategy='most_frequent', columns=['A'])
or for all the categorical columns
>>> obj = ObjectImputer(strategy='most_frequent')
The fit, transform, and fit_transform methods accept:
dask dataframes:
>>> import dask.dataframe as dd >>> import pandas as pd >>> import numpy as np >>> X = dd.from_pandas(pd.DataFrame( ... {'A': ['a', 'b', 'a', None], ... 'B': ['c', 'c', 'd', None], ... 'C': [0, 1, 2, np.nan]}), npartitions=1)
koalas dataframes:
>>> import databricks.koalas as ks >>> import numpy as np >>> X = ks.DataFrame( ... {'A': ['a', 'b', 'a', None], ... 'B': ['c', 'c', 'd', None], ... 'C': [0, 1, 2, np.nan]})
and pandas dataframes:
>>> import pandas as pd >>> import numpy as np >>> X = pd.DataFrame( ... {'A': ['a', 'b', 'a', None], ... 'B': ['c', 'c', 'd', None], ... 'C': [0, 1, 2, np.nan]})
The result is a transformed dataframe belonging to the same dataframe library.
imputation done for the selected columns:
>>> obj = ObjectImputer(strategy='most_frequent', columns=['A']) >>> obj.fit_transform(X) A B C 0 a c 0.0 1 b c 1.0 2 a d 2.0 3 a None NaN
imputation done for all the columns:
>>> X = pd.DataFrame( ... {'A': ['a', 'b', 'a', None], ... 'B': ['c', 'c', 'd', None], ... 'C': [0, 1, 2, np.nan]}) >>> obj = ObjectImputer(strategy='most_frequent') >>> obj.fit_transform(X) A B C 0 a c 0.0 1 b c 1.0 2 a d 2.0 3 a c NaN
Independly of the dataframe library used to fit the transformer, the tranform_numpy method only accepts NumPy arrays and returns a transformed NumPy array. Note that this transformer should only be used when the number of rows is small e.g. in real-time environment.
>>> X = pd.DataFrame( ... {'A': ['a', 'b', 'a', None], ... 'B': ['c', 'c', 'd', None], ... 'C': [0, 1, 2, np.nan]}) >>> obj.transform_numpy(X.to_numpy()) array([['a', 'c', 0.0], ['b', 'c', 1.0], ['a', 'd', 2.0], ['a', 'c', nan]], dtype=object)
-
fit
(X: Union[pd.DataFrame, ks.DataFrame, dd.DataFrame], y: Union[pd.Series, ks.Series, dd.Series] = None) → gators.imputers.object_imputer.ObjectImputer[source]¶ Fit the transformer on the dataframe X.
- Parameters
- XDataFrame.
Input dataframe.
- ySeries, default None.
Target values.
- Returns
- self‘ObjectImputer’
Instance of itself.
-
transform_numpy
(X: Union[pd.Series, ks.Series, dd.Series], y: Union[pd.Series, ks.Series, dd.Series] = None)[source]¶ Transform the NumPy array X.
- Parameters
- Xnp.ndarray:
Input array.
- Returns
- Xnp.ndarray
Transformed array.
-
static
check_array
(X: numpy.ndarray)¶ Validate array.
- Parameters
- Xnp.ndarray
Array.
-
check_array_is_numerics
(X: numpy.ndarray)¶ Check if array is only numerics.
- Parameters
- Xnp.ndarray
Array.
-
static
check_binary_target
(X: Union[pd.DataFrame, ks.DataFrame, dd.DataFrame], y: Union[pd.Series, ks.Series, dd.Series])¶ Raise an error if the target is not binary.
- Parameters
- ySeries
Target values.
-
static
check_dataframe
(X: Union[pd.DataFrame, ks.DataFrame, dd.DataFrame])¶ Validate dataframe.
- Parameters
- XDataFrame
Dataframe.
-
static
check_dataframe_contains_numerics
(X: Union[pd.DataFrame, ks.DataFrame, dd.DataFrame])¶ Check if dataframe is only numerics.
- Parameters
- XDataFrame
Dataframe.
-
static
check_dataframe_is_numerics
(X: Union[pd.DataFrame, ks.DataFrame, dd.DataFrame])¶ Check if dataframe is only numerics.
- Parameters
- XDataFrame
Dataframe.
-
check_dataframe_with_objects
(X: Union[pd.DataFrame, ks.DataFrame, dd.DataFrame])¶ Check if dataframe contains object columns.
- Parameters
- XDataFrame
Dataframe.
-
check_datatype
(dtype, accepted_dtypes)¶ Check if dataframe is only numerics.
- Parameters
- XDataFrame
Dataframe.
-
static
check_multiclass_target
(y: Union[pd.Series, ks.Series, dd.Series])¶ Raise an error if the target is not discrete.
- Parameters
- ySeries
Target values.
-
check_nans
(X: Union[pd.DataFrame, ks.DataFrame, dd.DataFrame], columns: List[str])¶ Raise an error if X contains NaN values.
- Parameters
- XDataFrame
Dataframe.
- theta_vecList[float]
List of columns.
-
static
check_regression_target
(y: Union[pd.Series, ks.Series, dd.Series])¶ Raise an error if the target is not discrete.
- Parameters
- ySeries
Target values.
-
static
check_target
(X: Union[pd.DataFrame, ks.DataFrame, dd.DataFrame], y: Union[pd.Series, ks.Series, dd.Series])¶ Validate target.
- Parameters
- XDataFrame
Dataframe.
- ySeries
Target values.
-
compute_statistics
(X: Union[pd.DataFrame, ks.DataFrame, dd.DataFrame], value: Optional[Union[float, int, str]]) → Dict[str, Union[float, int, str]]¶ Compute the imputation values.
- Parameters
- XDataFrame
Dataframe. used to compute the imputation values.
- valueUnion[float, int, str, None]
Value used for imputation.
- Returns
- statisticsDict[str, Union[float, int, str]]
Imputation value mapping.
-
fit_transform
(X: Union[pd.DataFrame, ks.DataFrame, dd.DataFrame], y: Union[pd.Series, ks.Series, dd.Series] = None) → Union[pd.DataFrame, ks.DataFrame, dd.DataFrame]¶ Fit and Transform the dataframe X.
- Parameters
- XDataFrame.
Input dataframe.
- ySeries, default None.
Input target.
- Returns
- XDataFrame
Transformed dataframe.
-
static
get_column_names
(inplace: bool, columns: List[str], suffix: str)¶ Return the names of the modified columns.
- Parameters
- inplacebool
If True return columns. If False return columns__suffix.
- columnsList[str]
List of columns.
- suffixstr
Suffix used if inplace is False.
- Returns
- List[str]
List of column names.
-
get_params
(deep=True)¶ Get parameters for this estimator.
- Parameters
- deepbool, default=True
If True, will return the parameters for this estimator and contained subobjects that are estimators.
- Returns
- paramsdict
Parameter names mapped to their values.
-
set_params
(**params)¶ Set the parameters of this estimator.
The method works on simple estimators as well as on nested objects (such as
Pipeline
). The latter have parameters of the form<component>__<parameter>
so that it’s possible to update each component of a nested object.- Parameters
- **paramsdict
Estimator parameters.
- Returns
- selfestimator instance
Estimator instance.
-
transform
(X: Union[pd.DataFrame, ks.DataFrame, dd.DataFrame]) → Union[pd.DataFrame, ks.DataFrame, dd.DataFrame]¶ Transform the dataframe X.
- Parameters
- XDataFrame.
Input dataframe.
- Returns
- XDataFrame
Transformed dataframe.