我试图在 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列中的 sa和b,而不是c.
None
0
a
b
c
这样做的最佳方法是什么?
您可以选择所需的列并通过分配来完成:
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