解决Pandas的to_excel()写入不同Sheet,而不会被重写

一、概述

在使用Pandas的to_excel()方法写入数据时,当我们想将多个数据写入一个Excel表的不同DataFrame中,虽然能够指定sheet_name参数,但是会重写整个Excel之后才会存储。

现在有3个sheet,内容如下:

>>> import pandas as pd
>>> df1 = pd.read_excel('456.xlsx', sheet_name='Sheet1')
>>> df2 = pd.read_excel('456.xlsx', sheet_name='Sheet2')
>>> df3 = pd.read_excel('456.xlsx', sheet_name='Sheet3')
>>> df1
   姓名 性别  年龄
0  张三  男  23
1  李四  男  25
2  王五  男  21
>>> df2
   姓名   身高   体重
0  张三  170  130
1  李四  171  126
2  王五  165  140
>>> df3
   姓名    收入
0  张三  4000
1  李四  4500
2  王五  5000
>>>

 

一般情况下:

>>> df1.to_excel('789.xlsx', sheet_name='Sheet1', index=False, header=True)
>>> df2.to_excel('789.xlsx', sheet_name='Sheet2', index=False, header=True)
>>> df3.to_excel('789.xlsx', sheet_name='Sheet3', index=False, header=True)

结果如下:

 

只有最后一个存储的内饰数据,并不符合我们的需求。

二、解决方法

使用新的方式保存

with pd.ExcelWriter('789.xlsx') as writer:
    df1.to_excel(writer, sheet_name='Sheet1', index=False, header=True)
    df2.to_excel(writer, sheet_name='Sheet2', index=False, header=True)
    df3.to_excel(writer, sheet_name='Sheet3', index=False, header=True)

结果如下:

 

实现插入相同Excel表中不同Sheet_name!

 

本文参考链接:

https://blog.csdn.net/weixin_43060843/article/details/100766677

 

posted @ 2020-12-07 13:54  肖祥  阅读(7605)  评论(0编辑  收藏  举报