我有一个包含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吗?
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: 目前只能按列使用dict/Series进行填充
也许一个解决方法是使用转置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