【问题标题】:How SimpleImputer works to replace nan values in a dataframe?SimpleImputer 如何替换数据框中的 nan 值?
【发布时间】:2019-10-11 07:19:02
【问题描述】:

我有一个形状 (10,3) 的 ndarray,其中包含一些缺失值 (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').

有解决这个问题的建议吗?

【问题讨论】:

    标签: python-3.x scikit-learn


    【解决方案1】:

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

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

    imputer = SimpleImputer(strategy='mean')

    应该可以。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-04-22
      • 2020-02-26
      • 2021-08-25
      • 1970-01-01
      • 2021-11-11
      • 1970-01-01
      • 2021-11-06
      • 2013-08-11
      相关资源
      最近更新 更多