pandas .to_excel不覆盖已有sheet的方法

转:https://blog.csdn.net/unsterbliche/article/details/80578606

pandas .to_excel不覆盖已有sheet的方法

直接to_excel会被覆盖,借助ExcelWriter可以实现写多个sheet。

from openpyxl import load_workbook
excelWriter = pd.ExcelWriter(os.path.join(output_dir, 'datapoint_statistic.xlsx'),
                                                engine='openpyxl')
pd.DataFrame().to_excel(os.path.join( output_dir,'datapoint_statistic.xlsx'))
#excel必需已经存在,因此先建立一个空的sheet
_excelAddSheet(DataFrame, excelWriter, sheet_name)
 
def _excelAddSheet(self,dataframe,excelWriter,sheet_name):
    book = load_workbook(excelWriter.path)
    excelWriter.book = book
    dataframe.to_excel(excel_writer=excelWriter,sheet_name=sheet_name,index=None)
    excelWriter.close()

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
在使用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文件进行锁定以避免其他用户同时修改导致的冲突。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值