Python批量合并Excel,实现数据透视表

蚂蚁学Python

共 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原生透视表更强大的功能。

浏览 40
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报