文章为个人学习工作过程中遇到的实际问题,在此做记录,日后好查询。


一、问题描述

将多个Dataframe分别写入Excel的多个Sheets,并且不能覆盖原有的sheet.

待写入Dataframe1:
在这里插入图片描述
待写入Dataframe2:
在这里插入图片描述
目标Excel
在这里插入图片描述

二、解决方法

直接使用多个Pandas的to_excel()会造成sheet覆写,最终只显示最后运行的to_excel语句内容。

df1.to_excel('xxx.xlsx',sheet_name='df1')
df2.to_excel('xxx.xlsx',sheet_name='df2')

运行结果(只有sheet=df2)
在这里插入图片描述

需要使用以下代码:

writer = pd.ExcelWriter('xxx.xlsx',mode='a',engine='openpyxl')

df1.to_excel(writer,"df1")
df2.to_excel(writer,"df2")

writer.save()
writer.close()

*mode='a'代表append,可以实现追加sheet;如果不写mode,则默认mode='w',会把原有的sheet覆盖。

结果如下:
在这里插入图片描述

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐