小编典典

pandas数据框fillna()只有一些列到位

all

我试图在 Pandas 数据框中只为某些列子集填充 0 值。

当我做:

import pandas as pd
df = pd.DataFrame(data={'a':[1,2,3,None],'b':[4,5,None,6],'c':[None,None,7,8]})
print df
df.fillna(value=0, inplace=True)
print df

输出:

     a    b    c
0  1.0  4.0  NaN
1  2.0  5.0  NaN
2  3.0  NaN  7.0
3  NaN  6.0  8.0
     a    b    c
0  1.0  4.0  0.0
1  2.0  5.0  0.0
2  3.0  0.0  7.0
3  0.0  6.0  8.0

None它用0‘s替换每个。我想要做的是,只替换None列中的 sab,而不是c.

这样做的最佳方法是什么?


阅读 69

收藏
2022-06-11

共1个答案

小编典典

您可以选择所需的列并通过分配来完成:

df[['a', 'b']] = df[['a','b']].fillna(value=0)

结果输出如预期:

     a    b    c
0  1.0  4.0  NaN
1  2.0  5.0  NaN
2  3.0  0.0  7.0
3  0.0  6.0  8.0
2022-06-11