相关文章:
(最全、最新)查看python安装、路径以及pip安装的包列表及路径、查看Python所有虚拟环境
python批量爬取古诗词并保存之Excel或数据库mysql
Python提取MySQL数据,并批量保存到Excel文件,生成报表
Python半分钟内处理分析128张Excel表格,是种怎么样的体验
Python提取MySQL数据,并批量保存到Excel文件,生成报表
Python半分钟内处理分析128张Excel表格
背景:一家专注于户外运动的巨头公司,旗下有20个品牌,这些品牌涉及到128个类目(细分行业),涉及范围之广,有点头大。
有一天,老板说:“今天有空处理一下近一年销售额总额TOP5的品牌以及对应的销售额”。 (言外之意是,下班前务必筛选出近一年销售额总额TOP5的品牌以及对应的销售额。)当你看到同事共享给你的128个Excel表格文件,你才体会到,绝望,原来这么远,又这么近。你怎么办?
一、弄清楚需求
别急,兵来将挡,水来土掩,越是大难临头,越是要沉得住气。先喝杯82年的拉菲,压压惊。先看看文件:
打开任意一张Excel表格,我们发现数据源处理好了,没有空值,没有异常值,先做个数据透视表看看:
每张Excel表,都是以月的维度(2018年9月-2019年8月,近一年)记录着每个品牌的日期、转化率、访客数、类目(细分行业)、客单价、品牌类型等数据构成。
思路:能批量处理的前提是数据源,完整,有规律,表头一致。
一、最终需求是要筛选出近一年销售额总和排名前5的品牌。
二、对单独的一张Excel表进行分类汇总,得出各品牌的总销售额 X 128张Excel,也就是结果再次合并,得到所有品牌的销售额总和,换句话说,就是分类汇总128次。直接用for循环,遍历出来。
二、上代码
导入模块,打开单个表格,先看数据源情况:
日期范围:
计算销售额:
pandas中关于set_index和reset_index的用法
pandas中的reset_index()
增加行业标签:
replace()方法:
https://www.runoob.com/python/att-string-replace.html
https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.replace.html
concat()方法:
https://zhuanlan.zhihu.com/p/355264340
分组统计groupby()方法:
https://blog.csdn.net/Asher117/article/details/85614034
https://www.cnblogs.com/Yanjy-OnlyOne/p/11217802.html
处理完单个Excel文件,就可以批量处理了,给个For循环即可。
top品牌销售额排名:(还差一点点,把销售额的格式改改)
近一年销售TOP5品牌及其对应的销售额。从数据结果来看,大头公司下的20个品牌全面开花,以品牌5为先锋,一年销售高达12.26亿。
排名最后的品牌体量也达到了9.79亿元,平均单品牌销售10.85亿元。