如果我添加两列来创建第三列,则任何包含 NaN(代表我的世界中缺少的数据)的列都会导致生成的输出列也为 NaN。有没有办法在不将值显式设置为 0 的情况下跳过 NaN(这会失去这些值“缺失”的概念)?
In [42]: frame = pd.DataFrame({'a': [1, 2, np.nan], 'b': [3, np.nan, 4]})
In [44]: frame['c'] = frame['a'] + frame['b']
In [45]: frame
Out[45]:
a b c
0 1 3 4
1 2 NaN NaN
2 NaN 4 NaN
在上面,我希望 c 列是 [4, 2, 4]。
谢谢...
最佳答案
使用 fillna()
frame['c'] = frame.fillna(0)['a'] + frame.fillna(0)['b']
或按照建议:
frame['c'] = frame.a.fillna(0) + frame.b.fillna(0)
给予:
a b c
0 1 3 4
1 2 NaN 2
2 NaN 4 4
关于python - Pandas 将两列相加,跳过 NaN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24386638/