使用現有 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中文網其他相關文章!