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

如何对两个Pandas DataFrame按ID求和更新并合并新增行?

解决方案:Pandas按ID合并并对value列求和更新

你可以通过合并两个DataFrame后按ID分组求和的方式实现需求,具体步骤如下:

  1. 先用pd.concat()将两个DataFrame合并为一个整体
  2. 以ID为分组键,对value列执行求和聚合
  3. 重置索引恢复成标准的DataFrame结构

完整代码示例:

import pandas as pd

d1 = pd.DataFrame({'ID': ["A", "B", "C", "D"], "value": [2, 3, 4, 5]})
d2 = pd.DataFrame({'ID': ["B", "D", "E"], "value": [1, 3, 2]})

# 合并两个DataFrame
combined = pd.concat([d1, d2])
# 按ID分组求和,重置索引
result = combined.groupby('ID', as_index=False)['value'].sum()

print(result)

执行后输出:

ID  value
0  A      2
1  B      4
2  C      4
3  D      8
4  E      2

为什么之前的方法不行?

  • update()方法的作用是用另一个DataFrame的值替换原DataFrame的匹配项,不会执行求和操作,只会覆盖原有值
  • 单纯使用concat()只是将两个DataFrame行堆叠,不会自动对重复ID的value列求和,需要配合分组聚合才能实现需求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 04:06:13