SimpleImputer 如何替换数据帧中的 nan 值?



我有一个 shape(10,3( 的数组,其中包含一些缺失值(nan(。我想用相应列的平均值替换缺失值。为此,我使用了SimpleImpueter。我的代码如下:

from sklearn.impute import SimpleImputer
imputer = SimpleImputer(missing_values = 'nan',strategy='mean')

此代码不起作用,并显示以下值错误:

ValueError: Input contains NaN, infinity or a value too large for dtype('float64').

有什么办法可以克服这个问题吗?

如果你写imputer = SimpleImputer(missing_values = 'nan',strategy='mean'),你实际上是在告诉scikit学会用列的平均值替换字符串'nan'的所有出现。这不是您想要的,相反,您希望将np.nan对象替换为平均值(恰好是默认值(。

因此,只需使用imputer = SimpleImputer(missing_values = np.nan,strategy='mean')

imputer = SimpleImputer(strategy='mean')

而是应该工作。

最新更新