我已经在多个帖子中搜索了这个主题,并且尝试了人们给出的所有可能解决方案,尽管这些解决方案仍然对我不起作用。
我正在尝试用列均值替换每列中的每个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()
答案 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