首頁 >後端開發 >Python教學 >如何使用 Pandas 將資料追加到現有 Excel 檔案而不覆蓋?

如何使用 Pandas 將資料追加到現有 Excel 檔案而不覆蓋?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-27 09:37:10634瀏覽

How to Append Data to an Existing Excel File Using Pandas Without Overwriting?

使用Pandas 寫入現有Excel 檔案而不覆寫資料

使用pandas 將新資料新增至現有Excel 檔案時,預設行為是讓新資料覆蓋任何現有內容。如果您想保留其他工作表上的現有數據,這可能會出現問題。

問題

考慮以下程式碼:

import pandas

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

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

writer.save()

執行此程式碼時,它會將data_filtered 中的資料加入Excel 檔案Masterfile. xlsx 中名為「Main」的新工作表中。但是,它也會刪除檔案中的所有其他工作表

解決方案

為了避免覆蓋現有數據,您可以使用引擎= ExcelWriter 中的'openpyxl' 選項。這允許您存取底層的 openpyxl 對象,從而對流程進行更多控制。

以下是如何修改上述程式碼以附加到現有Excel 檔案而不覆蓋:

import pandas
from openpyxl import load_workbook

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

## ExcelWriter for some reason uses writer.sheets to access the sheet.
## If you leave it empty it will not know that sheet Main is already there
## and will create a new sheet.

writer.sheets = dict((ws.title, ws) for ws in book.worksheets)

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

writer.save()

透過明確地將writer.sheets 設定為現有工作表的字典,我們確保ExcelWriter 知道現有工作表並且不會覆寫它們。

以上是如何使用 Pandas 將資料追加到現有 Excel 檔案而不覆蓋?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn