【发布时间】:2023-03-12 18:34:01
【问题描述】:
我想使用模型预测(比如说RandomForestRegression)来替换数据框Age 列中的缺失值。我检查了模型预测的数据类型是numpy.ndarray。
这是我的工作:
a = RandomForestRegressor()
a.fit(train_data, target)
result = a.predict(test_data)
df[df.Age.isna()].Age.iloc[:] = result
但它不起作用,也无法替换nan 值。请问为什么?
我看到有些人使用相同的方法,但它们有效。
【问题讨论】:
-
试试
df.loc[df['Age'].isna(), 'Age'] = result.values。如果这不起作用,那么您的result值与df['Age']中的空值的形状不同。这意味着你的逻辑不清楚。 -
我使用了
df.loc[df['Age'].isna(), 'Age'] = result,它成功了。请问你为什么用result.values?由于 的谓词值应该是数组而不是字典。非常感谢! -
result.values与dict无关。它只是使用pd.Series.values来使用 NumPy 数组进行赋值。如果以下答案解决了您的问题,请接受(左侧绿色勾号),以便其他用户知道。
标签: python pandas indexing scikit-learn