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

如何按另一列相同值对指定列数值进行分组求和(附示例)

基于列值分组求和的几种实现方法

嘿,这个分组求和的需求在数据处理里太常见了!我给你整理几种主流工具的实现方法,覆盖Excel、Python和SQL,你可以根据自己的使用场景选择:

先明确你的数据与目标

原始数据:

column1column2
mat80
math50
math60
engl70
engl40
engl50
engl90
phy70
phy60
phy40
phy80

目标求和结果:

column1column2
mat80
math110
engl250
phy250

方法1:Excel 实现

方式1:用 SUMIF 函数手动计算

适合数据量不大、需要灵活自定义输出位置的场景:

  1. 先提取column1的唯一值到新列(比如D列),Excel 365及以上版本可以直接用=UNIQUE(A:A);旧版本可以用「数据」→「删除重复值」功能提取。
  2. 在对应唯一值的单元格右侧(比如E2)输入公式:=SUMIF(A:A, D2, B:B),下拉填充所有行,就能得到每个分组的求和值。

方式2:数据透视表(高效可视化)

适合快速生成汇总表,还能随时调整维度:

  1. 选中整个原始数据区域
  2. 点击「插入」→「数据透视表」,按提示选择放置位置
  3. 在右侧字段列表中,把column1拖到「行」区域,column2拖到「值」区域(默认就是求和,若不是可以点击值字段设置改为「求和」),瞬间就能得到分组求和结果。

方法2:Python Pandas 实现

适合批量处理数据、自动化脚本场景:

import pandas as pd

# 构造你的原始数据(实际场景可以用pd.read_csv/pd.read_excel读取文件)
data = {
    'column1': ['mat', 'math', 'math', 'engl', 'engl', 'engl', 'engl', 'phy', 'phy', 'phy', 'phy'],
    'column2': [80, 50, 60, 70, 40, 50, 90, 70, 60, 40, 80]
}
df = pd.DataFrame(data)

# 核心:按column1分组,对column2求和
sum_result = df.groupby('column1')['column2'].sum().reset_index()

# 输出结果
print(sum_result)

运行后会输出:

column1  column2
0    engl      250
1     mat       80
2    math      110
3     phy      250

方法3:SQL 实现

适合数据库中的数据汇总:
假设你的数据存储在名为subject_scores的表中,字段为column1和column2,执行以下SQL语句即可:

SELECT column1, SUM(column2) AS column2
FROM subject_scores
GROUP BY column1;

这条语句会按column1的不同值分组,对每组的column2数值求和,返回的结果就是你需要的分组汇总表。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 07:22:30