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

两个结构相同的Pandas DataFrame按标识列聚合求和生成第三个DataFrame

解决方案

你可以先将两个DataFrame纵向拼接,再按球员唯一标识列分组求和,该方案兼容两个DataFrame球员名单不完全一致的场景,是最稳妥的实现方式:

import pandas as pd

d1 = {'PlayerID': [1, 2], 'Name': ['Tyreek', 'Amari'], 'Targets': [15, 16], 'Receptions': [11, 13]}
df1 = pd.DataFrame(data=d1)

d2 = {'PlayerID': [1, 2], 'Name': ['Tyreek', 'Amari'], 'Targets': [4, 5], 'Receptions': [3,3]}
df2 = pd.DataFrame(data=d2)

# 核心逻辑:先拼接再分组求和
df_season_total = pd.concat([df1, df2]).groupby(
    by=['PlayerID', 'Name'], # 指定分组键,相同球员的多条数据会被分到同一组
    as_index=False # 不将分组键转为索引,保持原列结构
).sum(numeric_only=True) # 仅对数值列求和,避免字符串列报错

运行后得到的df_season_total即为你需要的累计统计结果:

PlayerIDNameTargetsReceptions
1Tyreek1914
2Amari2116

如果你能100%确认两个DataFrame的行数、球员顺序、PlayerID/Name完全匹配,也可以用更简便的写法:

df_season_total = df1.copy()
# 直接对指定的数值列相加
df_season_total[['Targets', 'Receptions']] = df1[['Targets', 'Receptions']] + df2[['Targets', 'Receptions']]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 12:36:02