如何按另一列相同值对指定列数值进行分组求和(附示例)
基于列值分组求和的几种实现方法
嘿,这个分组求和的需求在数据处理里太常见了!我给你整理几种主流工具的实现方法,覆盖Excel、Python和SQL,你可以根据自己的使用场景选择:
先明确你的数据与目标
原始数据:
| column1 | column2 |
|---|---|
| mat | 80 |
| math | 50 |
| math | 60 |
| engl | 70 |
| engl | 40 |
| engl | 50 |
| engl | 90 |
| phy | 70 |
| phy | 60 |
| phy | 40 |
| phy | 80 |
目标求和结果:
| column1 | column2 |
|---|---|
| mat | 80 |
| math | 110 |
| engl | 250 |
| phy | 250 |
方法1:Excel 实现
方式1:用 SUMIF 函数手动计算
适合数据量不大、需要灵活自定义输出位置的场景:
- 先提取
column1的唯一值到新列(比如D列),Excel 365及以上版本可以直接用=UNIQUE(A:A);旧版本可以用「数据」→「删除重复值」功能提取。 - 在对应唯一值的单元格右侧(比如E2)输入公式:
=SUMIF(A:A, D2, B:B),下拉填充所有行,就能得到每个分组的求和值。
方式2:数据透视表(高效可视化)
适合快速生成汇总表,还能随时调整维度:
- 选中整个原始数据区域
- 点击「插入」→「数据透视表」,按提示选择放置位置
- 在右侧字段列表中,把
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
相关产品推荐
相关产品推荐

