如何使用Pandas在axis=1上填充缺失值?

3

我有一个包含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个回答

2
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

有关此事有任何更新吗?文档中提到了轴的选项,但是仍然出现相同的错误。 - Neeraj Hanumante

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接