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

如何在Pandas中为相同Key的行新增求和汇总行

如何在Pandas中为相同Key的行新增求和汇总行

嘿,刚接触Pandas完全不用慌,我来帮你搞定这个需求!你想要保留原始数据的同时,给每个相同Key的组新增一行显示value的总和,咱们一步步来实现:

首先,先模拟你的原始数据(方便后续演示):

import pandas as pd

# 模拟你的输入数据
data = {
    'Key': [10, 11, 12, 12, 13, 13],
    'value': [500, 500, 600, 800, 1000, 1200]
}
df = pd.DataFrame(data)

接下来是核心操作,分三步完成:

  • 第一步:按Key分组,计算每个组的value总和,生成汇总行的DataFrame
  • 第二步:把原始数据和汇总数据合并到一起
  • 第三步:按Key排序,让相同Key的原始行和汇总行集中排列

对应的代码如下:

# 1. 生成每个Key的汇总行
summary_df = df.groupby('Key', as_index=False)['value'].sum()

# 2. 合并原始数据和汇总数据
combined_df = pd.concat([df, summary_df], ignore_index=True)

# 3. 按Key排序,确保同Key的行放在一起
combined_df = combined_df.sort_values(by='Key', ignore_index=True)

运行后你打印combined_df,就能得到和你示例一致的结果:

Key  value
0   10    500
1   11    500
2   12    600
3   12    800
4   12   1400
5   13   1000
6   13   1200
7   13   2200

如果想让汇总行更清晰,还可以给它加个标识列,比如:

# 给原始数据和汇总行分别加标识
df['类型'] = '原始行'
summary_df['类型'] = '汇总行'

# 合并后排序
combined_df = pd.concat([df, summary_df], ignore_index=True).sort_values(by='Key', ignore_index=True)

这样结果里会多一列区分原始行和汇总行,更直观~

备注:内容来源于stack exchange,提问作者Amit

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.15 09:53:01