【发布时间】:2017-11-27 09:49:12
【问题描述】:
我正在尝试使用sklearn.preprocessing.Imputer 将给定数据集中的 NaN 值替换为列均值。我没有替换NaN,而是发现它们正在被我的代码删除。这是一个简短的示例,展示了我面临的这个问题:
>>> test_data = np.array([float("NaN"), 1, 2, 3])
>>> imp = Imputer(missing_values=float("NaN"), strategy="mean")
>>> imp.fit_transform(test_data)
** Deprecation warning truncated **
array([[1., 2., 3.]])
我应该改变什么,而不是删除 NaN 它被替换为 2. ?
我试图从sklearn.preprocessing.Imputer user guide 改编,最初关注this answer 但我一定误解了他们。
编辑:
我还尝试了以下方法,它消除了弃用警告但不会改变最终结果:
>>> test_data = np.array([[float("NaN"), 1, 2, 3]])
>>> imp = Imputer(missing_values=float("NaN"), strategy="mean")
>>> imp.fit_transform(test_data)
array([[1., 2., 3.]])
【问题讨论】:
标签: python scikit-learn