Python3 pandas库 (32) 将数据写入Excel多个sheet

在实际使用报表的时候,常常是一个excel文件里面包含多个sheet,这些sheet放在一个文件里面方便管理,也方便阅读。

将数据内容分开存在不同的sheet里面是excel经常遇到的操作。操作多了,单调重复的动作也让人生烦。那么能不能用pandas批量处理这些繁琐的操作呢?

答案自然是可以,想一想只要运行一个py文件就能将n多内容分到n个sheet里面,那是多么爽啊。

那该怎么操作呢?下面是思考时间

《Python3 pandas库 (32) 将数据写入Excel多个sheet》
《Python3 pandas库 (32) 将数据写入Excel多个sheet》

其实之前的文章里面总结的关于保存excel文件的toexcel函数里面有个参数’sheet_name’‘可以设置sheet的名字。

曹骥:Python3 pandas(4) 读写excel,使用书签zhuanlan.zhihu.com《Python3 pandas库 (32) 将数据写入Excel多个sheet》

那如果我们把不同内容存储到同一个文件里面,但是使用不同sheet_name,是否能保存在同一个文件里面呢??????我们来试试:

《Python3 pandas库 (32) 将数据写入Excel多个sheet》

这有两组数据,df1,df2.我们分别使用to_excel保存到同一文件,使用不同参数试试。

《Python3 pandas库 (32) 将数据写入Excel多个sheet》
《Python3 pandas库 (32) 将数据写入Excel多个sheet》
《Python3 pandas库 (32) 将数据写入Excel多个sheet》

查看结果,发现只有后一个保存的df2存在,第一个不存在。

这是怎么回事呢?很有可能是在写入文件时,如果使用相同文件名,后写入的文件会将之前的覆盖掉。那如果,我们同一时间写入,保存,不分先后顺序,能否解决这一问题呢?

为了达到这一目标,我们需要另外一个帮手: ExcelWriter

《Python3 pandas库 (32) 将数据写入Excel多个sheet》
《Python3 pandas库 (32) 将数据写入Excel多个sheet》

方法很简单,不需要加载其他库,使用pd.ExcelWriter建立一个writer,然后,将df1,df2都使用to_excel(writer, sheet名),最后一次性将这些数据保存,并关闭writer就完成了。

来看看成果:

《Python3 pandas库 (32) 将数据写入Excel多个sheet》
《Python3 pandas库 (32) 将数据写入Excel多个sheet》
《Python3 pandas库 (32) 将数据写入Excel多个sheet》
《Python3 pandas库 (32) 将数据写入Excel多个sheet》

当然跟open文件一样,上面的5行代码也可以简写如下:

with pd.ExcelWriter(r'C:\Users\数据\Desktop\data\test2.xls') as writer:
    df1.to_excel(writer, sheet_name='df1')
    df2.to_excel(writer, sheet_name='df2')

简单高效,不需要再单独写save和close,自动完成。

代码虽然简单,但是如果将其合理定义为函数,再加上其他功能灵活运用,绝对是减轻工作量的好帮手。

好吧,就到这里,祝大家节日快乐。

《Python3 pandas库 (32) 将数据写入Excel多个sheet》
清明节。。。。

    原文作者:曹骥
    原文地址: https://zhuanlan.zhihu.com/p/35316820
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞