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

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

我试图用它的列平均值替换每列中的每个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

评论
  • ~签名
    ~签名 回复

    I think you need DataFrame.fillna by means per columns by means per columns (axis=0), which is default value, so should be omit:

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