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

Pandas中两个同形状DataFrame相加后行拼接,如何实现对应元素相加?

问题根源

你这情况是因为两个DataFrame的行索引不匹配,add()方法默认会按索引对齐数据,把两个df的索引做并集,不匹配的行用fill_value填充后相加,结果行数就变成了两个df的行数总和(96+96=192)。

实现对应位置相加的方法

以下几种方式都能让你得到(96,3)的结果:

方法1:重置索引后相加

把两个df的索引都换成默认的整数序列,这样就能保证行位置完全对应:

d1_reset = d1.reset_index(drop=True)
d2_reset = d2.reset_index(drop=True)
result = d1_reset.add(d2_reset, fill_value=0)

方法2:直接基于数值数组运算

完全跳过索引对齐,直接取两个df的底层数值数组做加法,之后再转回DataFrame:

# 无缺失值的情况
result = pd.DataFrame(d1.values + d2.values, columns=d1.columns)

# 有缺失值的话,先填充0再相加
result = pd.DataFrame(d1.fillna(0).values + d2.fillna(0).values, columns=d1.columns)

方法3:统一两个df的索引

如果其中一个df的索引是你想要的基准,直接把另一个df的索引改成和它一致:

d2 = d2.set_index(d1.index)
result = d1.add(d2, fill_value=0)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 09:25:56