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

如何基于索引对两个pandas Series的值进行求和运算?

解决pandas Series按索引合并运算的最佳方法

这个需求其实很常见,核心就是让两个Series按索引自动对齐,缺失索引的位置用0填充后做加法运算,最简洁高效的方式是用pandas内置的add()方法并指定fill_value参数,当然也可以用基础加法结合fillna()来实现,下面详细说明:

方法一:使用add()方法(推荐)

pandas的add()方法专门为这类索引对齐运算设计,通过fill_value参数可以直接指定当某个索引只在其中一个Series存在时,用什么值来填充缺失的那一方。代码如下:

import pandas as pd

m = pd.Series([5,2,7,2], index=[0,1,2,3])
n = pd.Series([8,3], index=[0,2])

# 核心代码:用add方法指定填充值为0
z = m.add(n, fill_value=0)
# 如果需要整数类型结果,可以转换
z = z.astype(int)

print(z)
# 输出:
# 0    13
# 1     2
# 2    10
# 3     2
# dtype: int64

方法二:基础加法结合fillna()

如果你习惯用运算符的写法,也可以先把n中缺失的索引位置填充为0,再和m相加,效果是一样的:

z = m + n.fillna(0)
z = z.astype(int)

为什么这是最佳方法?

  • 完全利用pandas的向量化运算,比手动循环或者重新索引的方式性能高很多,尤其是处理大数据集时优势明显;
  • 代码简洁易读,fill_value参数清晰表达了“缺失值用0填充”的逻辑,维护性好;
  • 自动处理索引对齐,不需要手动处理索引的匹配问题,避免出错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:25:53