写入现有 Excel 文件而不覆盖:Pandas 解决方案
使用 pandas 处理 Excel 文件时,写入现有工作表而不覆盖现有数据可能是一个共同的挑战。当 pandas 使用 ExcelWriter 的默认行为(通过创建新工作表来覆盖现有数据)时,就会出现此问题。
要避免此问题,您可以利用 ExcelWriter 的“engine”参数,该参数允许您指定底层 Excel 引擎。通过将此参数设置为“openpyxl”,您可以将 openpyxl 的功能与 pandas 集成。
下面是解决问题的代码:
import pandas from openpyxl import load_workbook # Load the existing Excel workbook book = load_workbook('Masterfile.xlsx') # Create an ExcelWriter object using the openpyxl engine writer = pandas.ExcelWriter('Masterfile.xlsx', engine='openpyxl') # Set the ExcelWriter's book attribute to the loaded workbook writer.book = book # Assign sheet names to the writer object's sheets attribute writer.sheets = dict((ws.title, ws) for ws in book.worksheets) # Write data to the existing sheet data_filtered.to_excel(writer, "Main", cols=['Diff1', 'Diff2']) # Save the updated workbook writer.save()
通过指定“openpyxl”引擎,修改后的代码利用 openpyxl 访问工作簿中现有工作表的能力。这允许 pandas 将数据附加到“Main”工作表,而不会覆盖其他选项卡。
请注意,在运行此代码之前,您必须确保“Main”工作表存在于原始工作簿中,以避免在以下情况下创建新工作表:该工作表不存在。
以上是Pandas 如何将数据追加到现有 Excel 工作表而不覆盖?的详细内容。更多信息请关注PHP中文网其他相关文章!