工作之中一个excel内会有多个sheet。但是将两组数据先后保存到一个excel内会发现只有后一组保存的数据,因为前一组的数据被后写入的数据覆盖了。如:
![](https://img.haomeiwen.com/i16636256/1bb3535405b69ee5.jpg)
这是两组数据,df1与df2,我们分别使用to_excel将这两组数据保存到同一个excel内。这里我们将sheet_name这个参数改成不同的
![](https://img.haomeiwen.com/i16636256/4f5b5d2a331e72c9.jpg)
![](https://img.haomeiwen.com/i16636256/0b87edfffd60ead1.jpg)
但是结果只有一个df2,即df1被df2这组数据覆盖了。但是能不能两组数据同时写入、保存,但是不分先后顺序。答案是可以的!
为了这一方法,我们需要使用到ExcelWriter
![](https://img.haomeiwen.com/i16636256/b7ce41eec76eb645.jpg)
方法很简单,不用再重新导入新的模块,只要使用pd.ExcelWriter建立一个writer,然后,将df1,df2都使用to_excel(writer, sheet名),最后一次性将这些数据保存,并关闭writer就完成了
![](https://img.haomeiwen.com/i16636256/05aaeb64b1f197bf.jpg)
![](https://img.haomeiwen.com/i16636256/f4507d711ff6c335.jpg)
当然跟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,自动完成。
网友评论