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

Pandas匹配同类数据两列并关联求和的高效实现方法

最简实现方案

你可以直接用map()配合分组求和实现,仅需2行代码就能得到目标结果:

import pandas as pd

df = pd.DataFrame({'A': [1, 2, 3, 4, 5, 6, 7], 'B': [3, 4, 5, 2, 1, 1, 6],
                   'Hits_A': [10, 40, 50, 35, 24, 60, 30]})

# 核心逻辑
df['Hits_B'] = df['A'].map(df.groupby('B')['Hits_A'].sum())
output = df.drop('B', axis=1)

如果想更极致,可以把核心逻辑合并为1行:

output = df.assign(Hits_B = df['A'].map(df.groupby('B')['Hits_A'].sum())).drop('B', axis=1)

逻辑说明

  1. df.groupby('B')['Hits_A'].sum()会生成一个索引为B的取值、值为对应分组Hits_A总和的Series
  2. map()方法会将A列的每个值匹配上述Series的索引,匹配不到自动返回NaN,完全符合你的需求
  3. 最终结果和你原有实现完全一致,不需要额外创建临时表、重命名列或者关联操作

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 15:18:04