将NaN值替换为列平均值不会更改熊猫数据框的NaN值

时间:2020-04-24 13:33:25

标签: python pandas data-science

我已经在多个帖子中搜索了这个主题,并且尝试了人们给出的所有可能解决方案,尽管这些解决方案仍然对我不起作用。

我正在尝试用列均值替换每列中的每个NaN值。换句话说:

    A   B
 1: 2   3
 2: 2   1
 3: NaN 4

Column A mean = 1.3

    A   B
 1: 2   3
 2: 2   1
 3: 1.3 4 

我尝试过:

df.fillna(value=0, axis=1, inplace=True)

可以正常工作,但是只要我尝试过:

df.fillna(value=df.mean(axis=1), inplace=True)

我什么都没有改变,NaN值仍然存在。

这是一段代码:

# Drop 'station' column
del final_df['station']
# Replace NaN with column mean value
final_df.fillna(value=final_df.mean(axis=1), inplace=True)
final_df.head()

output

1 个答案:

答案 0 :(得分:1)

我认为您需要DataFrame.fillna,以每列为单位,以每列为单位(轴= 0),这是默认值,因此应省略:

df = df.fillna(value=df.mean())
print (df)
      A  B
1:  2.0  3
2:  2.0  1
3:  2.0  4

我认为inplace不好,请检查thisthis