【发布时间】:2021-07-14 12:04:58
【问题描述】:
我正在尝试使用来自 sklearn_pandas 的 CategoricalImputer 填充 NaN 分类值。
from sklearn_pandas import CategoricalImputer
imputer = CategoricalImputer()
nan_columns = train_df.loc[:, train_df.isnull().any()]
for column in nan_columns:
imputer.fit_transform(column)
但是imputer.fit_transform(column) 给了我这个错误:
AttributeError: 'str' object has no attribute 'copy'
我正在按照文档执行此操作。我哪里错了?
编辑:
我添加了这个单元格:
from sklearn.impute import SimpleImputer
nan_columns = train_df.loc[:, train_df.isnull().any()]
imputer = SimpleImputer(strategy="most_frequent")
imputer.fit_transform(train_df)
msno.bar(train_df.sample(1000), labels=True, fontsize=8)
但是,它没有用。这是显示列中仍然存在缺失值的条形图:
【问题讨论】:
-
根据 README
CategoricalImputer已从 2.0.0 版本中删除,因为您可以使用 scikit-learn 中的SimpleImputer。 -
@AaronKeesing 您如何将 SimpleImputer 用于分类值?文档仅显示数值。
标签: python machine-learning data-science nan sklearn-pandas