我想填写一个特征为空的平均值。
我尝试过:
# Let's impute other NAs with mean value
for f in data:
if data[f].isnull().sum() / data.shape[0] < threshold: np.isnan(data[f]) = data[f].mean()
...这会引发错误:
SyntaxError:无法分配给函数调用
我也尝试过
data[f][np.isnan(data[f])] = data[f].mean()
但这甚至更大。
我们将不胜感激。
答案 0 :(得分:1)
您可以使用DataFrame.fillna
直接填写nan。
它创建一个用括号中指定的值替换nan
的数据框。
df.fillna(df.mean())
将返回新的数据帧,因此您必须编写df=df.fillna(df.mean())
来保存它。