API reference¶
Everything listed here can be imported directly from the top-level package:
The submodules below only group related imputers; you don't need them for imports.
The imputer interface¶
Every imputer subclasses BaseImputer and exposes one method,
impute(df) -> DataFrame:
- Input: a
pandas.DataFramewith numeric columns, where missing values areNaN(orpd.NAin nullable dtypes). Non-numeric columns raiseTypeError.GroupMeanImputeris the exception: its grouping column may be non-numeric. - Output: a new dataframe with the same index and columns. The input is never
modified.
IndicatorImputeralso appends one indicator column per input column. - Output types follow one policy for every imputer:
- a column without missing values comes back unchanged, with the same values and dtype;
- an imputed column comes back as floating point:
float32andfloat64keep their precision, and pandas nullable columns (Int64,Float64, ...) becomeFloat64, so values that couldn't be imputed stay<NA>. - Configuration happens in the constructor. Imputers with randomness accept a
random_statefor reproducible results. - Columns with no observed values carry no information, so every imputer that
learns from the data leaves them as
NaN. Only imputers that fill in a constant you choose,ConstantImputerandIndicatorImputer(strategy="zero"), fill them. To use a fixed value for empty columns, fill them explicitly, for example withHybridImputer(methods=[..., ConstantImputer(0)]). - Errors: if a model can't be fitted (for example a singular matrix), imputers
with an
on_errorparameter either raiseImputationError(on_error="raise") or fall back to mean or median imputation (on_error="fallback"). Leaving it unset falls back with aFutureWarning; from 1.0.0 the default is"raise". - Row order matters only for the time-series imputers; sort your data first.
Each imputer also has a functional shortcut, for example
knn_impute(df, n_neighbors=3) for KNNImputer(n_neighbors=3).impute(df).
Modules¶
| Page | Module | Contents |
|---|---|---|
| Base class | imputation_methods.base |
BaseImputer |
| Statistical | imputation_methods.statistical |
MeanImputer, MedianImputer, ModeImputer, ConstantImputer, QuantileImputer, TrimmedMeanImputer, EndOfDistributionImputer, GroupMeanImputer, IndicatorImputer |
| Donor sampling | imputation_methods.sampling |
RandomSamplingImputer, HotDeckImputer, ColdDeckImputer |
| Time series | imputation_methods.time_series |
LOCFImputer, NOCBImputer, ForwardFillFallbackImputer, InterpolationImputer, MovingAverageImputer, WeightedMovingAverageImputer, LinearTrendImputer, PolynomialTrendImputer, SeasonalImputer, KalmanFilterImputer |
| Nearest neighbors | imputation_methods.neighbors |
KNNImputer, RadiusNeighborsImputer, LocalMeanImputer |
| Regression | imputation_methods.regression |
RegressionImputer, StochasticRegressionImputer, PMMImputer, BayesianRidgeImputer, HuberImputer, RANSACImputer, GaussianProcessImputer |
| Iterative | imputation_methods.iterative |
MICEImputer, EMImputer, MissForestImputer |
| Matrix completion | imputation_methods.matrix |
SoftImputeImputer, PPCAImputer |
| Neural networks | imputation_methods.neural |
AutoencoderImputer, GAINImputer |
| Ensembles | imputation_methods.ensemble |
HybridImputer, StackingImputer, BaggingImputer |
| Functional API | imputation_methods.functional |
mean_impute, median_impute, … (42 functions) |
| Metrics | imputation_methods.metrics |
rmse, mae |