今天做个练习:
ExcelHome上有篇合并多张同结构sheet页数据的文章,其中用到了2016版的PowerQuery插件。祝老师用5步实现了多个sheet页数据的合并:
我学习了一下,习惯性地想:用python如何实现。其实比较简单,而且符合自然的思路,就两步:
第一步、获取Excel中的表名,第二步,按表名读取数据并合并到一个数据集中;
1、需要用到模块
pandas openpyxl
先引入这两个武器:
import pandas as pd
import openpyxl as pl
2、准备工作:
使用祝老师在文章中分享的文件,把最后一个“效果展示”sheet删除,另存为d:\data\test026.xlsx。
3、使用openpyxl模块获取所有sheet名列表:
fpath = r'd:\data\test026.xlsx'
wb = pl.load_workbook(fpath,read_only=True)
sheets=wb.sheetnames
4、循环读取各sheet页中的数据并合并到数据集中:
df = pd.DataFrame([])
for sheet in sheets:
dd = pd.read_excel(fpath,sheet_name=sheet,ignore_index=True)
df = df.append(dd,ignore_index=True)
5、透视分析一下各部门的费用数据:
数据结构如果很清楚,这种工作都不用打开excel表就能完成,可以把以上命令保存在一个.py文件中,需要分析数据时,简单修改一下文件名,然后运行一下,就ok了。