10年青少年编程教育经验 | 资深Python专家
前大厂技术总监 | 现编程教育创业者
专注青少年编程教育技能提升

ps:后台回复:“excel课程”获取到目前为止课程的测试文件(失效的话,在留言区留言
)。
今日技能
📱 如何通过pandas的分组聚合功能解决大数据简明分析
大家在日常工作里有没有遇到小林这样事情。
周三小明一到工位上,就被叫到经理办公室。
"小明,2025年的季度销售数据需要深度分析,excel文件我已邮件发你了,下午 5 点前给我分析结果报告!要分析的内容邮件里也写了" 王经理快速地下达了这个任务。
“好的”小明连忙回到工位上,迫不及待地打开邮件,双击附件打excel开文件,等了1分钟,终于看到50 万条销售记录。
初步筛了一下数据,对数据有了初步的印象,有6个字段(列):
地区:华东、华北、华南、西南等 8 个区域
产品类别:电子产品、服装、家居、食品等 12 个类别
销售日期:2025 年 1月到9月
销售额:单笔交易金额
利润:单笔交易利润
客户类型:个人客户、企业客户、政府客户
然后看了一下邮件里,张经理的分析要求。
分析需求:
按地区和产品类别进行组合分析
计算每个地区 - 产品类别的:
总销售额
平均销售额
销售笔数
总利润
利润率
找出销售额最高的前 3 个地区 - 产品组合
分析不同客户类型的销售表现
看到这里,小明马上想到透视表。
这是他通过上次失败的教训得来的,但是用起来发现了不少问题
1、就是慢,又卡又慢
创建第一个数据透视表:地区 vs 产品 类别,值为销售额
Excel 卡顿严重,每次操作都要等待 1-2 分钟
尝试添加多个值字段(总销售额、平均销售额、销售笔数)
问题: 数据透视表处理50 万条数据勉强可以,但操作极慢
需要创建多个数据透视表来分析不同维度
手动计算利润率:需要先计算总利润和总销售额,再相除
跨表引用导致公式复杂,容易出错
到了中午 12:00,小明看着半天出不来,且是不是会崩的excel,心累了。
距离 deadline 还有不到 5 小时,还是出去吃个饭吧。
在吃饭回来的电梯里,碰到了之前帮助过自己的技术大拿平叔,顿时眼前一亮。
”平叔,江湖救急呀,帮帮忙“。
“这场又怎么了,小明?”平叔笑着说。
“唉,就是50万的销售数据要做分析,结果我用excel透视图,老是崩或者出不来,都弄了一上午”小明边说边吐槽。
“噢,听上去应该就是分组+基础的维度分析,应该不难的,我们一起看看”平叔说道。
说完,就跟着小明来到他的工位上,看了几眼原始的excel,沉思了一会。
“嗯!这个不难,你把文件给我”平叔边说边打开自己的笔记本,打开vscode开始编写代码。
没一会,平叔就指着一段说明跟小林说,”基本思路是这样的,你看“
获取excel文件数据,存入pands数据集
针对【'地区', '产品类别'】进行分组,然后获取均值和总额
针对‘客户类型’进行分组分析
然后平叔基于这个思路,写了这段代码
import pandas as pd# 1. 读取数据df = pd.read_excel('quarterly_sales.xlsx')# 2. 多维度分组聚合分析grouped_stats = df.groupby(['地区', '产品类别']).agg({'销售额': ['sum', 'mean', 'count'],'利润': ['sum', 'mean']}).round(2)# 3. 重命名列,让结果更清晰grouped_stats.columns = ['总销售额', '平均销售额','销售笔数', '总利润', '平均利润']# 4. 计算利润率grouped_stats['利润率'] = (grouped_stats['总利润']/ grouped_stats['总销售额'] * 100).round(2)# 5. 按客户类型分析customer_analysis = df.groupby('客户类型').agg({'销售额': 'sum','利润': 'sum','销售日期': 'count'}).rename(columns={'销售日期': '交易笔数'})customer_analysis['平均客单价'] = (customer_analysis['销售额']/ customer_analysis['交易笔数']).round(2)# 6. 找出销售额TOP3的产品组合top3_products = grouped_stats.nlargest(3, '总销售额')
你看就是这么简单,具体操作你自己可以练一下。这个代码也就是读文件会有点慢,其他应该很快的。
果然只见平叔点了下执行,2分钟不到结果就出来。
”办公自动化就是强呀,8个小时干不完的工作,2分钟就解决了。“小明感慨道。
欢迎在评论区分享你的想法!
方老师说: 🚀 现在屏幕前的你已经比90%的同龄人领先一步了!
接下来可以:
用pandas实现如何进行excel数据透视表的生成(下期教程教!)
⚠️ 遇到问题?评论区甩截图,方老师尽量在24小时内回复!
关注我们,不错过任何一节课! ✨