Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions feature_engine/_docstrings/fit_attributes.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,7 @@
_binner_dict_docstring = """binner_dict_:
Dictionary with the interval limits per variable.
""".rstrip()

_imputer_dict_docstring = """imputer_dict_:
Dictionary with the values to replace missing data in each variable.
""".rstrip()
5 changes: 5 additions & 0 deletions feature_engine/_docstrings/methods.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,3 +40,8 @@
_transform_discretiser_docstring = """transform:
Sort continuous variable values into the intervals.
""".rstrip()

# used in imputation module
_transform_imputers_docstring = """transform:
Impute missing data.
""".rstrip()
6 changes: 4 additions & 2 deletions feature_engine/imputation/arbitrary_number.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,14 @@
)
from feature_engine._docstrings.fit_attributes import (
_feature_names_in_docstring,
_imputer_dict_docstring,
_n_features_in_docstring,
_variables_attribute_docstring,
)
from feature_engine._docstrings.methods import (
_fit_not_learn_docstring,
_fit_transform_docstring,
_transform_imputers_docstring,
)
from feature_engine._docstrings.substitute import Substitution
from feature_engine._variable_handling.init_parameter_checks import (
Expand All @@ -29,12 +31,12 @@


@Substitution(
imputer_dict_=BaseImputer._imputer_dict_docstring,
imputer_dict_=_imputer_dict_docstring,
variables_=_variables_attribute_docstring,
feature_names_in_=_feature_names_in_docstring,
n_features_in_=_n_features_in_docstring,
fit=_fit_not_learn_docstring,
transform=BaseImputer._transform_docstring,
transform=_transform_imputers_docstring,
fit_transform=_fit_transform_docstring,
)
class ArbitraryNumberImputer(BaseImputer):
Expand Down
15 changes: 1 addition & 14 deletions feature_engine/imputation/base_imputer.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,27 +2,14 @@
from sklearn.base import BaseEstimator, TransformerMixin
from sklearn.utils.validation import check_is_fitted

from feature_engine.dataframe_checks import _check_X_matches_training_df, check_X
from feature_engine._base_transformers.mixins import GetFeatureNamesOutMixin
from feature_engine.dataframe_checks import _check_X_matches_training_df, check_X
from feature_engine.tags import _return_tags


class BaseImputer(BaseEstimator, TransformerMixin, GetFeatureNamesOutMixin):
"""shared set-up checks and methods across imputers"""

_variables_numerical_docstring = """variables: list, default=None
The list of variables to impute. If None, the imputer will select
all numerical variables.
""".rstrip()

_imputer_dict_docstring = """imputer_dict_:
Dictionary with the values to replace missing data in each variable.
""".rstrip()

_transform_docstring = """transform:
Impute missing data.
""".rstrip()

def _transform(self, X: pd.DataFrame) -> pd.DataFrame:
"""
Common checks before transforming data:
Expand Down
10 changes: 7 additions & 3 deletions feature_engine/imputation/categorical.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,14 @@

from feature_engine._docstrings.fit_attributes import (
_feature_names_in_docstring,
_imputer_dict_docstring,
_n_features_in_docstring,
_variables_attribute_docstring,
)
from feature_engine._docstrings.methods import _fit_transform_docstring
from feature_engine._docstrings.methods import (
_fit_transform_docstring,
_transform_imputers_docstring,
)
from feature_engine._docstrings.substitute import Substitution
from feature_engine._variable_handling.init_parameter_checks import (
_check_init_parameter_variables,
Expand All @@ -25,11 +29,11 @@


@Substitution(
imputer_dict_=BaseImputer._imputer_dict_docstring,
imputer_dict_=_imputer_dict_docstring,
variables_=_variables_attribute_docstring,
feature_names_in_=_feature_names_in_docstring,
n_features_in_=_n_features_in_docstring,
transform=BaseImputer._transform_docstring,
transform=_transform_imputers_docstring,
fit_transform=_fit_transform_docstring,
)
class CategoricalImputer(BaseImputer):
Expand Down
15 changes: 11 additions & 4 deletions feature_engine/imputation/end_tail.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,17 @@

from feature_engine._docstrings.fit_attributes import (
_feature_names_in_docstring,
_imputer_dict_docstring,
_n_features_in_docstring,
_variables_attribute_docstring,
)
from feature_engine._docstrings.methods import _fit_transform_docstring
from feature_engine._docstrings.init_parameters.all_trasnformers import (
_variables_numerical_docstring,
)
from feature_engine._docstrings.methods import (
_fit_transform_docstring,
_transform_imputers_docstring,
)
from feature_engine._docstrings.substitute import Substitution
from feature_engine._variable_handling.init_parameter_checks import (
_check_init_parameter_variables,
Expand All @@ -23,12 +30,12 @@


@Substitution(
variables=BaseImputer._variables_numerical_docstring,
imputer_dict_=BaseImputer._imputer_dict_docstring,
variables=_variables_numerical_docstring,
imputer_dict_=_imputer_dict_docstring,
variables_=_variables_attribute_docstring,
feature_names_in_=_feature_names_in_docstring,
n_features_in_=_n_features_in_docstring,
transform=BaseImputer._transform_docstring,
transform=_transform_imputers_docstring,
fit_transform=_fit_transform_docstring,
)
class EndTailImputer(BaseImputer):
Expand Down
15 changes: 11 additions & 4 deletions feature_engine/imputation/mean_median.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,17 @@

from feature_engine._docstrings.fit_attributes import (
_feature_names_in_docstring,
_imputer_dict_docstring,
_n_features_in_docstring,
_variables_attribute_docstring,
)
from feature_engine._docstrings.methods import _fit_transform_docstring
from feature_engine._docstrings.init_parameters.all_trasnformers import (
_variables_numerical_docstring,
)
from feature_engine._docstrings.methods import (
_fit_transform_docstring,
_transform_imputers_docstring,
)
from feature_engine._docstrings.substitute import Substitution
from feature_engine._variable_handling.init_parameter_checks import (
_check_init_parameter_variables,
Expand All @@ -23,12 +30,12 @@


@Substitution(
variables=BaseImputer._variables_numerical_docstring,
imputer_dict_=BaseImputer._imputer_dict_docstring,
variables=_variables_numerical_docstring,
imputer_dict_=_imputer_dict_docstring,
variables_=_variables_attribute_docstring,
feature_names_in_=_feature_names_in_docstring,
n_features_in_=_n_features_in_docstring,
transform=BaseImputer._transform_docstring,
transform=_transform_imputers_docstring,
fit_transform=_fit_transform_docstring,
)
class MeanMedianImputer(BaseImputer):
Expand Down
7 changes: 5 additions & 2 deletions feature_engine/imputation/random_sample.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,10 @@
_n_features_in_docstring,
_variables_attribute_docstring,
)
from feature_engine._docstrings.methods import _fit_transform_docstring
from feature_engine._docstrings.methods import (
_fit_transform_docstring,
_transform_imputers_docstring,
)
from feature_engine._docstrings.substitute import Substitution
from feature_engine._variable_handling.init_parameter_checks import (
_check_init_parameter_variables,
Expand Down Expand Up @@ -44,7 +47,7 @@ def _define_seed(
variables_=_variables_attribute_docstring,
feature_names_in_=_feature_names_in_docstring,
n_features_in_=_n_features_in_docstring,
transform=BaseImputer._transform_docstring,
transform=_transform_imputers_docstring,
fit_transform=_fit_transform_docstring,
)
class RandomSampleImputer(BaseImputer):
Expand Down