使用现有 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中文网其他相关文章!