前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python+pandas分离Excel数据到同一个Excel文件中多个Worksheets

Python+pandas分离Excel数据到同一个Excel文件中多个Worksheets

作者头像
Python小屋屋主
发布2019-06-14 17:08:44
2.3K0
发布2019-06-14 17:08:44
举报
文章被收录于专栏:Python小屋Python小屋Python小屋

封面图片:《Python程序设计(第2版)》,董付国,清华大学出版社

===============

问题描述:

已知文件“超市营业额2.xlsx”中结构与部分数据如图所示:

现在要求把每个员工的交易数据写入文件“各员工数据.xlsx”,每个员工的数据占一个worksheet,结构和“超市营业额2.xlsx”一样,并以员工姓名作为worksheet的标题,预期的结果文件如图所示:

很显然,要解决这个问题需要这样几步:1)读取原始数据文件创建DataFrame,2)分离DataFrame,把不同员工的数据分离开,3)把不同员工的数据写入同一个Excel文件的不同Worksheet。

第1步比较简单,使用pandas的read_excel()函数读取Excel文件即可。

对于第2步,需要首先获取所有员工的唯一姓名,然后使用DataFrame结构的布尔运算也很容易分离。

对于第3步,需要使用DataFrame结构的to_excel()方法来实现,把第2步中分离得到的每位员工的数据写入同一个Excel文件的不同Worksheet中,该方法语法为:

to_excel(excel_writer, sheet_name='Sheet1', na_rep='', float_format=None, columns=None, header=True, index=True, index_label=None, startrow=0, startcol=0, engine=None, merge_cells=True, encoding=None, inf_rep='inf', verbose=True)

该方法第一个参数可以是Excel文件路径或ExcelWriter对象,第二个参数sheet_name用来指定要写入的Worksheet名字。

第3步的要点是,to_excel()方法的第一个参数不能使用Excel文件路径,因为每次写入时会覆盖原来Excel文件中的内容。如果代码写成下面的样子:

代码可以运行,但是结果Excel文件中只有最后一次写入的数据,如图:

对于本文描述的需要,需要为to_excel()方法第一个参数指定为ExcelWriter对象,正确代码如下:

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-06-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python小屋 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档