You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pandas Series相减时如何避免NaN?缺失值按0处理的简便方法

解决Pandas Series减法时缺失值视为0的简便方法

当然有更省心的办法!完全不用手动插入0,Pandas 内置的方法就能直接搞定这个需求。

核心思路是用 Series 的sub()方法,并指定fill_value=0参数——这个参数会自动把两个 Series 中不存在对应索引的位置用0来填充,再执行减法运算。

举个实际的例子看效果:

import pandas as pd

# 创建两个测试Series
s1 = pd.Series([5, 3, 7], index=['a', 'b', 'c'])
s2 = pd.Series([2, 4], index=['a', 'c'])

# 直接减法会得到NaN
print(s1 - s2)
# 输出:
# a    3.0
# b    NaN
# c    3.0
# dtype: float64

# 用sub()加fill_value参数,缺失值自动按0处理
print(s1.sub(s2, fill_value=0))
# 输出:
# a    3.0
# b    3.0
# c    3.0
# dtype: float64

原理很简单:当运算时遇到其中一个Series没有的索引(比如例子里的b),fill_value=0会把缺失的那一方的值替换成0,所以3 - 0 = 3,完美解决NaN的问题。

另外补充一下:Pandas里的其他算术方法(比如加法add()、乘法mul()、除法div())也都支持fill_value参数,用法完全一致,遇到类似的需求都可以用这个思路解决。

内容的提问来源于stack exchange,提问作者Bill

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 07:13:45