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

如何在Pandas中对DataFrame按ID分组计算值的总和?

解决Pandas中按ID分组求和的问题

这事儿在Pandas里太常见啦,用groupby()加sum()就能轻松解决,哪怕你有成千上万个ID也完全hold住,效率拉满。

先还原你的示例数据

首先咱们先把你给出的测试数据创建出来,方便演示:

import pandas as pd

df = pd.DataFrame({
    'id': ['a', 'a', 'b', 'a', 'a'],
    'value': [2, 1, 8, 0, 2]
})

核心操作:分组求和

一行代码就能得到你想要的结果DataFrame:

result_df = df.groupby('id')['value'].sum().reset_index()

我拆解下这行代码的作用:

  • groupby('id'):把整个DataFrame按照id列的不同值分成一个个小组
  • ['value'].sum():对每个小组里的value列做求和运算
  • reset_index():把原本作为索引的id转成普通列,这样得到的结构就和你想要的完全一致了

看看最终结果

运行完上面的代码,result_df就是你要的样子:

idvalue
a5
b8

要是你觉得不需要把id转成普通列,只想保留以id为索引的Series格式,去掉reset_index()就行:

result_series = df.groupby('id')['value'].sum()

输出会是这样:

id
a    5
b    8
Name: value, dtype: int64

这个方法处理大规模数据毫无压力,Pandas的groupby是经过优化的,成千上万的ID也能快速计算完成。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 06:47:01