python - Pandas 将两列相加,跳过 NaN

标签 python pandas

如果我添加两列来创建第三列,则任何包含 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/

相关文章:

python - Holoviews:如何用时间索引绘制 DataFrame

python - matplotlib 中的锯齿线样式?

python - 如何在Python中检查数据帧是否包含字符串?

python - Django 分页器引发 TypeError

python - 执行合并连接列的外连接

python - Pandas :展平树结构

python - 使用 paramiko 检查 SSH 是否可以完成

python - 将字典列表转换为字典字典的优雅方法

python - 为什么 df.head() 在 python 中不起作用

python - 尽管密度极低,但使用稀疏的 Pandas 数据帧没有空间优势