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

如何将Pandas DataFrame分组求和结果保存至新列?

解决方案

原始DataFrame:

key1key2key3value1value2
1as234
1as223
2bj611

期望结果:

key1key2key3value1value2sum_value1sum_value2
1as23457
1as22357
2bj61111

你已经找对了核心思路,只需要扩展到value2即可,这里提供两种实现方式:

方式一:逐列处理

直接复用你的逻辑,对value2执行同样的分组求和转换:

import pandas as pd

# 假设df是你的原始DataFrame
df["sum_value1"] = df["value1"].groupby([df["key1"], df["key2"], df["key3"]]).transform('sum')
df["sum_value2"] = df["value2"].groupby([df["key1"], df["key2"], df["key3"]]).transform('sum')

方式二:批量处理(更高效)

如果需要处理多列,这种方式可以减少重复分组操作,效率更高:

import pandas as pd

# 按分组键对value1、value2执行求和转换
sum_values = df.groupby(["key1", "key2", "key3"])[["value1", "value2"]].transform('sum')
# 重命名列名以匹配需求
sum_values.columns = ["sum_value1", "sum_value2"]
# 将结果合并回原DataFrame
df = pd.concat([df, sum_values], axis=1)

两种方式都能生成你需要的结果,批量处理更适合后续扩展多列的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 04:06:24