首页 >后端开发 >Python教程 >如何将 Pandas 数据附加到现有 Excel 文件而不覆盖现有工作表?

如何将 Pandas 数据附加到现有 Excel 文件而不覆盖现有工作表?

Linda Hamilton
Linda Hamilton原创
2024-12-11 11:09:11937浏览

How Can I Append Pandas Data to an Existing Excel File Without Overwriting Existing Sheets?

使用 Openpyxl 将 Pandas 数据保存到现有 Excel 文件

使用现有 Excel 文件时,避免覆盖数据至关重要。在 Pandas 中,使用 to_excel() 方法写入现有文件时可能会遇到此问题。

问题

以下代码尝试将 DataFrame 写入现有 Excel 中的特定工作表file:

import pandas

writer = pandas.ExcelWriter('Masterfile.xlsx')

data_filtered.to_excel(writer, "Main", cols=['Diff1', 'Diff2'])

writer.save()

出现问题是因为 Pandas 删除了文件中的所有其他工作表,只留下新创建的名为“主要。”

解决方案

为了解决这个问题,我们可以利用 openpyxl 库,Pandas 在内部使用该库来处理 XLSX 文件。通过使用 openpyxl.load_workbook() 加载现有工作簿并将其分配给 ExcelWriter 对象,我们可以修改工作表字典以确保保留现有工作表。

以下是修改后的代码:

import pandas
from openpyxl import load_workbook

book = load_workbook('Masterfile.xlsx')
writer = pandas.ExcelWriter('Masterfile.xlsx', engine='openpyxl')
writer.book = book

# Assign the sheet dictionary to preserve existing sheets
writer.sheets = dict((ws.title, ws) for ws in book.worksheets)

data_filtered.to_excel(writer, "Main", cols=['Diff1', 'Diff2'])

writer.save()

以上是如何将 Pandas 数据附加到现有 Excel 文件而不覆盖现有工作表?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn