我建议使用autoimpute库。目前它可能是处理具有缺失值的数据集的最佳工具。
它有一个函数可以完全按照您要求的方式删除任何缺失值的行。
from autoimpute.imputations import MiceImputer, SingleImputer, listwise_delete
listwise_delete(df, inplace=True, verbose=False)
通常情况下,sklearn的imputer在其实用性方面非常有限,而autoimpute能够填补很多空缺。更具体地说,它允许:
- 明确设置您希望作为计算填充值的变量的列
- 为每个列或一组列设置不同的填充算法
si_dict_col = SingleImputer(
strategy={"gender":"categorical", "salary": "pmm", "weight": "pmm"},
predictors={"gender": ["salary", "weight", "looks"], "salary": ["weight", "gender"])
plot_imp_scatter(data_het_miss, "x", "y", "least squares")
它还遵循sklearn的模式,并且可以替代管道中sklearn自带的imputer函数。
imblearn
软件包及其重新采样管道,但这可能有点hacky。 - Ben Reiniger