2 回答
TA贡献1824条经验 获得超8个赞
严格来说,没有办法做到这一点SingleImputer。
一个选项,如上一个答案中提到的,是使用 pandas' replace,但如果你想坚持使用 scikit-learn 工具包,你可以使用 aPipeline代替,这可以说比你的两步解决方案更优雅一点已经有:
from sklearn.pipeline import Pipeline
pipe = Pipeline([('si1',SimpleImputer(strategy='constant',fill_value='NAN')),
('si2', SimpleImputer(strategy='constant',missing_values = None, fill_value='MISSING'))])
print('\ntrain_imputed:')
print(pipe.fit_transform(train))
print('\ntest_imputed:')
print(pipe.transform(test))
这会给你同样的结果。
TA贡献1779条经验 获得超6个赞
如果你想用 'MISSING' 替换 None 和 np.nan 值,你可以使用 pd.DataFrame.replace()。
test.replace(np.nan, "MISSING")
users
0 MISSING
1 MISSING
2 John Smith
3 Mary Williams
4 Andy Rollins
添加回答
举报