Python批量合并Excel,实现数据透视表
共 884字,需浏览 2分钟
·
2021-07-20 14:59
数据透视表是Excel非常高级的功能,它能够将长表转换成宽表,以多维度交叉的形式查看数值,更容易对比和分析数据。
单个Excel表的数据透视是比较容易的,然而如果数据分散在不同的Excel工作表的时候就难以处理。这时候结合Python,我们就能强强联手。
## 问题定义
有这样的一个书店销售数据,分多个sheet,每个sheet是一个月份的数据销售记录,现在一个个sheet查看数据不方便,就想到用数据透视表。
如果我想实现如下的结果透视表,该怎么做到呢?
大家如果仔细查看这个透视表,会发现每本书不同月份的销量、不同书籍相同月份的销量等趋势和对比,都更加明显的得到对比。
## 引入Pandas,读取源Excel文件
## 将多个Sheet表进行合并
因为源工作表中没有“月份”这一列,但是数据透视的时候需要按月份透视,所以我们先新增这一列,值设置为sheet name,然后对多个表合并,合并时用到了pd.concat。
## 调用pd.pivot_table实现数据透视
如上的pd.pivot_table很强大,介绍下其中的参数:
- df_all,即要访问的data frame数据
- index,透视表的行
- columns,透视表的列
- values,透视表的数值
- aggfunc,对值的聚合函数,默认是mean,这里改成sum加和
- fill_value,有些书籍在某些月份是没有销售的,填充值为0
- margins,是否在行尾部、列尾部,添加汇总列
- margins_name,汇总列的名字
打印透视表,看到如下效果
## 保存到结果Excel文件
这一步就简单了
## 总结
相比Excel,Python在批量化处理上具备强大的优势,结合透视表,可以实现比Excel原生透视表更强大的功能。