python⾃动汇总表格_省时省⼒!教你如何⽤Python将Excel报
表⾃动化
全⽂共2391字,预计学习时长14分钟
图源:morioh
⼯作中,⽆穷⽆尽的表格有时会令⼈抓狂。Excel⽆处不在,即便有着像Python这样的强⼤⼯具任你使⽤,你也难以从中逃脱。
python怎么读入excel也许你的⽼板和同事仍然需要这种简单的⽅法来访问重要数据。但没关系!那并不意味着你不能通过使⽤Python来简化Excel⼯作。
全程⽆需使⽤Excel,逃离报表魔⽖!
⽤Python将Excel报表⾃动化
你还在天天做Excel报表吗?⽽且还是为不同的客户做着四五次同样的报表吗?不如让Python代劳吧!
数据格式将使你期望从公司数据库中获得的内容与客户销售数据相匹配,与你期望从公司数据库中获得的数据相匹配。它按区域细分这些数
据,并且创建两个带有格式和图表的汇总表。⽆需使⽤Excel!
最终的数据流—⼀个⼯作簿转化为四个格式化报告 | 图源:Nik Piepenbreier
加载库
#Section 1 - Loading our Libraries import pandas as pd fromopenpyxl import load_workbook from openpyxl.styles importFont 你使⽤如下两个Librariy:
1. Pandas负责转化数据,并创建初始Excel⽂件
2. Openpyxl将⼯作薄格式化,并插⼊图表
加载数据
加载数据,并概览正在处理的内容。正如笔者所提到的,这些数据与读者从公司数据库系统获得的数据相似。
#Section 2 - Loading our Data df = pd.read_excel('github/datagy/pivot_table_pandas/raw/master/sample_pivot.xlsx', parse_dates=['Dat 在这⾥,使⽤Pandas读取Excel⽂件,并读取Date/⽇期列的⽇期。
创建数据透视表
接着我们要创建最终报告中所需要的汇总表。这⾥将创建⼀个数据透视表以作为例⼦,其中仅使⽤东部地区进⾏代码的实验。
#Section 3 - Testing Pivot Tables filtered= df[df['Region'] =='East'] quarterly_sales= pd.pivot_table(filtered, index =filtered['Date'].dt.quarter, c 创建第⼀个Excel⽂件
有了数据透视表后,将其导⼊到⼀个Excel⽂件中,我们将⽤pandas来导⼊:
#Section 04 - Creating and Excel Workbook file_path=#Path to where you want your file saved _excel(file_path, she 这⼀步是在做什么:
· 创建⼀个⽂件路径变量,以确定要将⽂件存储在何处,
· 使⽤ExcelWriter保存⽂件
· 将两个透视表保存到单独的⼯作表中,从第3⾏开始(稍后从中保留以⽤于页眉)
使报表更漂亮
Pandas有助于将数据导⼊到Excel中。既然数据已经导⼊Excel,不妨将其美化⼀下,来添加⼀些可视化效果。
#Section 05 - Loading the Workbook wb =load_workbook(file_path) sheet1= wb['Quarterly Sales'] # Section 06 - Formatting 在Section 5中,将⼯作簿和⼯作表加载到Openpyxl可以处理的单独对象中。
⽽Section 6中操作更多:
· 在表⼀的A1和A2单元格中添加标题和副标题。
· 更改“quarters”列的标题,使其更能反映数据。
·
对标题和副标题应⽤样式。
· 将⾦融领域的单元格转换为货币。这需要对每单个单元格进⾏单独处理。因此使⽤了for循环。
在Section 7中,添加了条形图:
· 创建⼀个条形图对象,并识别存储数据和类别的字段。
· 随后将数据和类别应⽤于对象。
· 最后,添加描述性标题和样式。使⽤许多不同的样式都试试!
这就是⼯作簿现在的样⼦:
所得⼯作簿之⼀ | 图源: Nik Piepenbreier
对多个⼯作簿执⾏⼯作流⾃动化
虽然已经很⽅便了,但是仅在⼀个区域执⾏这样的操作只能节约⼀点点的时间。我们可使⽤for循环,对所有的区域执⾏此操作。
#Section 08 - Getting Region Names regions =list(df['Region'].unique()) # Section 09 - Looping Over All Regions folder_path=#Ins 在Section 8中,创建了⼀个列表,其中包含了想要覆盖的不同区域的所有唯⼀值。
在Section 9中,在for循环中重复先前的代码:
· 创建⼀个新变量,该变量⽤于保存⽂件所在⽂件夹的路径
· 接下来,使⽤f-strings将区域名插⼊到脚本中,使得脚本对每个区域都是动态的。
图源:unsplash
Python的好处在于,它可使重复的任务具有可伸缩性。
想象⼀下,如果你每天都会收到这份⽂件,并且每天都要创建这些⼯作簿。这种⽅法能帮你节省多少
时间!
留⾔点赞关注
我们⼀起分享AI学习与发展的⼲货
如转载,请后台留⾔,遵守转载规范
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论