解决pandas中to_excel 数据覆盖sheet表问题

pandas解决to_excel 数据覆盖sheet表问题
pandas将数据导入到excel时,会将原来的数据进行覆盖,解决这个问题的代码如下:

import pandas as pd
from openpyxl import load_workbook
result2=[('a','2','ss'),('b','2','33'),('c','4','bbb')]#列表数据
writer = pd.ExcelWriter('123.xlsx',engine='openpyxl')#可以向不同的sheet写入数据
book=load_workbook('123.xlsx')
writer.book = book
df = pd.DataFrame(result2,columns=['xuhao','id','name'])#列表数据转为数据框
df.to_excel(writer, sheet_name='sheet2')#将数据写入excel中的sheet2表
writer.save()#保存
  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
在使用pandas的to_excel函数时,如果想要避免覆盖已有sheet,我们可以采取以下几种方法: 1.使用openpyxl库进行操作:to_excel函数的参数excel_writer可以接受一个ExcelWriter对象,我们可以使用openpyxl库创建这个对象。首先,我们可以使用pandas的read_excel函数读取现有的Excel文件,并使用openpyxl库的load_workbook函数加载该文件。接着,我们可以通过指定engine参数为'openpyxl'来创建一个新的ExcelWriter对象,并设置其book属性为已读取的Excel文件对象。最后,我们调用to_excel函数时指定ExcelWriter对象即可。 2.使用pd.ExcelWriter对象:在to_excel函数,我们可以直接使用pd.ExcelWriter对象作为excel_writer参数传入。首先,我们可以使用pandas的read_excel函数读取现有的Excel文件,并使用pd.ExcelWriter函数创建一个新的ExcelWriter对象。然后,我们可以使用该对象的append方法将DataFrame对象写入到该ExcelWriter对象,而不是直接调用to_excel函数。最后,我们调用save函数来保存文件。 3.操作已有sheet:我们可以在to_excel函数设置参数startrow和startcol来指定新数据写入的起始行和列。通过将startrow和startcol设置为已有数据的最后一行和最后一列的下一个位置,我们可以将新数据写入到已有的sheet而不覆盖之前的数据。 需要注意的是,无论选择哪种方法,在进行操作之前都应该先备份原始文件以防丢失数据。另外,在部分情况下,可能需要对Excel文件进行锁定以避免其他用户同时修改导致的冲突。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值