如何用Pandas填充轴= 1的缺失值?

时间:2015-07-02 12:27:56

标签: numpy pandas

我有一个带有nan

的数据框
a = np.asarray([[1,2,3],[2,np.nan,4],[np.nan,5,1]])
x = pd.DataFrame(a)
x.fillna(x.mean(axis=1))

我得到了

   0  1  2
0  1  2  3
1  2  3  4
2  2  5  1
很困惑,最后一行不应该是3,5,1?

1 个答案:

答案 0 :(得分:0)

x.fillna()仍然是按列操作。

x.mean(axis=1)

Out[73]: 
0    2
1    3
2    3
dtype: float64

因此,第一列填充为2,第二列填充为3。

如果我尝试x.fillna(x.mean(axis=1), axis=1),我会

NotImplementedError: Currently only can fill with dict/Series column by column

或许解决方法是使用转置x.T.fillna(x.mean(axis=1)).T

Out[94]: 
   0  1  2
0  1  2  3
1  2  3  4
2  3  5  1