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

如何在Pandas中实现SQL的PARTITION BY分组求和功能?

在Pandas中实现SQL窗口函数SUM(value) OVER (PARTITION BY group)的效果

你可以使用Pandas的groupby()结合transform()方法实现需求,transform会将分组聚合结果映射回原DataFrame的每一行,完全保留原始结构,和SQL窗口函数的逻辑完全匹配。

原始数据定义

import pandas as pd

df = pd.DataFrame({'group':['A','A','A','B','B','B'],'value':[1,2,3,4,5,6]})

实现代码

直接新增GroupSum列即可:

df['GroupSum'] = df.groupby('group')['value'].transform('sum')

结果验证

执行后得到的DataFrame与目标结构完全一致:

print(df)
#   group  value  GroupSum
# 0     A      1         6
# 1     A      2         6
# 2     A      3         6
# 3     B      4        15
# 4     B      5        15
# 5     B      6        15

原理说明

  • groupby('group')['value']按group列分组并选取value列
  • transform('sum')对每个分组计算总和,再将该总和填充到对应分组的每一行,最终返回与原DataFrame行数一致的Series,可直接作为新列添加

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 04:10:36