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

如何按Col2分组对DataFrame的Col3、Col4求和并保留Col1

解决Pandas分组求和并保留标识符列的问题

我来帮你搞定这个需求!你需要按Col2分组,对Col3和Col4求和,同时保留作为Col2标识符的Col1(注意到每个Col2对应的Col1都是唯一值,所以直接取该组内的任意值即可)。

实现代码

首先我们先构造你提供的原始DataFrame:

import pandas as pd

data = {
    'Col1': [10, 10, 30, 45, 45],
    'Col2': ['A', 'A', 'B', 'C', 'C'],
    'Col3': [5, 6, 2, 5, 2],
    'Col4': [4, 3, 7, 1, 1]
}
df = pd.DataFrame(data)

接下来是分组求和并保留Col1的核心代码:

result_df = df.groupby('Col2').agg(
    Col1=('Col1', 'first'),  # 因为同一Col2下Col1值相同,取first/max/min都可以
    Col3=('Col3', 'sum'),
    Col4=('Col4', 'sum')
).reset_index()[['Col1', 'Col2', 'Col3', 'Col4']]  # 调整列顺序和目标一致

运行结果

打印result_df会得到你想要的输出:

Col1 Col2  Col3  Col4
0    10    A    11     7
1    30    B     2     7
2    45    C     7     2

代码解释

  • groupby('Col2'):按Col2的值进行分组
  • agg():指定每个列的聚合规则,这里Col1取组内第一个值(因为同一分组内Col1是相同的,所以用first/max/min都能得到正确的标识符),Col3和Col4用sum求和
  • reset_index():把作为索引的Col2重新变回普通列
  • 最后通过[['Col1', 'Col2', 'Col3', 'Col4']]调整列的顺序,和你期望的结果一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 18:12:45