如何使用ndarray / model预测替换列中的缺失值

时间:2018-10-02 10:17:12

标签: python pandas indexing scikit-learn

我想使用模型预测(比如说RandomForestRegression)来替换数据帧的列Age中的缺失值。我检查了模型预测的数据类型为numpy.ndarray

这是我的工作

a = RandomForestRegressor()
a.fit(train_data, target)
result = a.predict(test_data)
df[df.Age.isna()].Age.iloc[:] = result

但是它不起作用,无法替换nan值。请问为什么?

我看到有些人使用相同的方法,但是他们可以工作。

1 个答案:

答案 0 :(得分:0)

请勿使用链接索引。在文档中为explicitly discouraged。您可能会看到的不一致之处可能与文档中所述的复制差异和视图差异有关。

相反,请使用单个pd.DataFrame.loc调用:

df.loc[df['Age'].isna(), 'Age'] = result

另请参阅Indexing and Selecting Data