python excelwriter保存路径_Python自动化处理Excel报表,我的工作更轻松了!

fb70df09525f306d14c67b47bdb53f04.png

f0f4baee449b7c4b51047ea5b0065ec6.png

没有转义的Excel!

Excel无处不在,即使我们使用了Python之类强大的辅助工具,依然无法摆脱Excel。 因为你的老板和同事仍然需要方便的方法来访问重要数据。 但是,这并不意味着你不能通过使用Python简化使用Excel的工作,而这整个过程都不需要你触碰Excel!

使用Python自动化Excel报表

你还在每天做着没完没了的Excel报表吗?你还在为不同的客户做着相同的事情吗? 让Python帮你!

我们来实现Excel报表的自动化

让我们快速看一下我们将要自动化的东西!我们将使用以下链接中Pandas数据透视表中的数据: https://towardsdatascience.com/a-step-by-step-guide-to-pandas-pivot-tables-e0641d0c6c70 数据格式需要与客户公司数据库中获得的数据格式相匹配。 我们按区域细分该数据,并创建两个汇总表,包括格式和图表,这些动作都不需要打开Excel!

c3d901475997e6cc4e79e3b2f974c4a7.png

数据可视化最终形式:从一个工作表到四个可视化报表

加载数据库

在这里,我们将使用Pandas和Openpyxl。如果你不知道Openpyxl,建议先找官方文档进行学习。我们将使用Python自动化3个Excel任务!
#第1部分-加载我们的库import pandas as pdfrom openpyxl import load_workbookfrom openpyxl.styles import Fontfrom openpyxl.chart import BarChart, Reference
我们将使用两个库:
  • Pandas负责转换我们的数据并创建最初的Excel文件

  • Openpyxl格式化我们的工作表并插入图表

加载数据

让我们加载数据并快速查看我们正在使用的数据! 正如我所提到的,数据的含义类似于你从公司数据库系统中获得的数据。
#第2部分-加载我们的数据df = pd.read_excel('https://github.com/datagy/pivot_table_pandas/raw/master/sample_pivot.xlsx', parse_dates=['Date'])print(df.head())#        Date Region                 Type  Units  Sales#0 2020-07-11   East  Children's Clothing   18.0    306#1 2020-09-23  North  Children's Clothing   14.0    448#2 2020-04-02  South     Women's Clothing   17.0    425#3 2020-02-28   East  Children's Clothing   26.0    832#4 2020-03-19   West     Women's Clothing    3.0
在这里,我们使用pandas读取一个Excel文件,将日期列解析为日期。

创建数据透视表

让我们创建最终报告中需要的汇总表。
#第3部分-测试数据透视表filtered = df[df['Region'] == 'East']quarterly_sales = pd.pivot_table(filtered, index = filtered['Date'].dt.quarter, columns = 'Type', values = 'Sales', aggfunc='sum')print("Quarterly Sales Pivot Table:")print(quarterly_sales.head())#季度销售数据透视表:#Type  Children's Clothing  Men's Clothing  Women's Clothing#Date#1                   12274           13293             16729#2                    5496           17817             22384#3                   14463            9622             15065#4                   13616           10953             16051

创建第一个Excel文件

有了透视表,现在我们将其加载到一个Excel文件中。 我们将使用pandas加载该Excel文件:
#第04部分-创建和Excel工作簿file_path = #Path to where you want your file savedquarterly_sales.to_excel(file_path, sheet_name = 'Quarterly Sales', startrow=3)
让我们快速了解一下我们在做什么:
  • 创建一个文件路径变量来标识我们要将文件存储在何处

  • 使用ExcelWriter保存文件

  • 将两个数据透视表都保存到单独的工作表中,从第3行开始(稍后从头开始使用)

让报表更漂亮

Pandas有助于将数据转换为Excel。接下来,让我们把表格再美化一下,并添加一些可视化效果。
#第05部分-加载工作簿wb = load_workbook(file_path)sheet1 = wb['Quarterly Sales']# 第06部分-格式化第一页sheet1['A1'] = 'Quarterly Sales'sheet1['A2'] = 'datagy.io'sheet1['A4'] = 'Quarter'sheet1['A1'].style = 'Title'sheet1['A2'].style = 'Headline 2'for i in range(5, 9):    sheet1[f'B{i}'].style='Currency'    sheet1[f'C{i}'].style='Currency'    sheet1[f'D{i}'].style='Currency'# 第07部分-添加条形图bar_chart = BarChart()data = Reference(sheet1, min_col=2, max_col=4, min_row=4, max_row=8)categories = Reference(sheet1, min_col=1, max_col=1, min_row=5, max_row=8)bar_chart.add_data(data, titles_from_data=True)bar_chart.set_categories(categories)sheet1.add_chart(bar_chart, "F4")bar_chart.title = 'Sales by Type'bar_chart.style = 3wb.save(filename = file_path)
这段代码里包含了很多内容,下面来给大家详细讲解! 在第5部分中,我们将工作簿和工作表加载到Openpyxl可以处理的单独对象中。 第6部分还有更多内容:
  • 在单元格A1和A2中为sheet1添加标题和副标题。

  • 更改了四分之一列的标题,以更好地反映数据。

  • 将样式应用于标题和副标题。

  • 将金融领域的单元格更改为货币。这需要一次应用于一个单元, 这就是为什么我们使用for循环的原因。

在第7部分中,我们添加了条形图:
  • 创建一个BarChart对象,并标识存储数据和类别的字段。

  • 然后将数据和类别应用于对象。

  • 最后,我们添加一个描述性的标题和样式。Openpyxl使用多种样式-尝试所有样式!

这是我们的工作表现在的样子:

badc2dc469eda34b66beabe4202a2d8a.png

我们的工作成果之一

为多个表格自动化此工作流程

只处理表格中的一部分不是我们高效工作的宗旨,让我们对所有带有for循环的区域执行此操作。
#第08部分-获取地区名称regions = list(df['Region'].unique())# 第09部分-所有区域的循环folder_path = #插入要保存报表的文件夹的路径for region in regions:    filtered = df[df['Region'] == f'{region}']    quarterly_sales = pd.pivot_table(filtered, index = filtered['Date'].dt.quarter, columns = 'Type', values = 'Sales', aggfunc='sum')    file_path = f"{path to your folder}{region}.xlsx"    quarterly_sales.to_excel(file_path, sheet_name = 'Quarterly Sales', startrow=3)    wb = load_workbook(file_path)    sheet1 = wb['Quarterly Sales']    sheet1['A1'] = 'Quarterly Sales'    sheet1['A2'] = 'datagy.io'    sheet1['A4'] = 'Quarter'    sheet1['A1'].style = 'Title'    sheet1['A2'].style = 'Headline 2'    for i in range(5, 10):        sheet1[f'B{i}'].style='Currency'        sheet1[f'C{i}'].style='Currency'        sheet1[f'D{i}'].style='Currency'    bar_chart = BarChart()    data = Reference(sheet1, min_col=2, max_col=4, min_row=4, max_row=8)    categories = Reference(sheet1, min_col=1, max_col=1, min_row=5, max_row=8)    bar_chart.add_data(data, titles_from_data=True)    bar_chart.set_categories(categories)    sheet1.add_chart(bar_chart, "F4")    bar_chart.title = 'Sales by Type'    bar_chart.style = 3
我们来仔细分析这一部分的代码: 在第8部分中,我们创建一个列表,其中包含我们要覆盖的不同区域的所有唯一值。 在第9部分中,我们在for循环中重复前面的代码:
  • 创建了一个新变量,该变量保存要保存文件的文件夹的路径。

  • 使用f字符串将区域名插入到脚本中,使其对每个区域都是动态的。

接下来是什么?

Python的好处在于可重复执行任务的可伸缩性。 你可以想象一下,利用以上步骤,快速创建报表, 每天能节省多少时间?

结论

在这个简短的教程中我们学到了很多东西!我们将表格转换为一组数据透视表,将它们导出到单独的工作簿中,然后将格式和图形应用于每个工作表格! 用Python自动化处理Excel报表,这也是数据分析中常用的技巧,我们准备了5个大数据分析实战项目,帮助数据分析快速进阶,同时拿高薪! 我们联合 上市公司实战派算法工程师善樾老师 推出了实战型数据分析课程 《如何运用数据科学对客户进行智能化分析及精准营销?》 ,整个课程只讲实战项目,课程囊括了用户数据分析、用户精准获取、客户精准营销、客户防流失、个贷评分卡等五大实战项目,帮助学员掌握上市企业的实战项目! 5大实战项目,41课时 ,新课尝鲜价仅需 99元 ,绝对超值~ e8b09ec8f5c66a20c68b24234b5954ab.png

识别上图二维码,抢先学习!

4a8c3775c026efc1a96be7fb1cf28d5e.gif

END

a2252d635afca98719b68390358fa9da.gif

推荐阅读

 你还在用Pandas处理大量数据?我发现了一个省时省事的大数据处理工具! 年薪高达60万,人才缺口1800万,入门大数据科学的基础知识都在这里!

dca95c5abe041e622e94fa7d14e3c168.gif

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值