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

如何使用 Pandas 寫入 Excel 檔案而不覆蓋現有資料?

DDD
發布: 2024-12-11 11:34:11
原創
308 人瀏覽過

How Can I Use Pandas to Write to an Excel File Without Overwriting Existing Data?

使用Pandas 處理Excel 覆蓋

Pandas 提供了寫入Excel 檔案的強大選項,但在寫入現有文件而不覆蓋其內容時會出現問題。預設情況下,pandas.ExcelWriter 在建立工作表時會覆寫現有資料。

範例和問題

考慮以下程式碼:

import pandas as pd

writer = pd.ExcelWriter('Masterfile.xlsx') 
data_filtered.to_excel(writer, "Main", cols=['Diff1', 'Diff2'])
writer.save()
登入後複製

在此場景中,「Masterfile.xlsx " 具有預先存在的選項卡。執行此程式碼時,將建立並填入一個新的「主」工作表,但所有其他標籤都將被刪除。

解決方案

為了防止資料遺失,Pandas 使用 openpyxl 函式庫來與 XLSX 搭配使用檔案。以下是程式碼的增強版:

import pandas as pd
from openpyxl import load_workbook

book = load_workbook('Masterfile.xlsx')
writer = pd.ExcelWriter('Masterfile.xlsx', engine='openpyxl') 
writer.book = book
writer.sheets = dict((ws.title, ws) for ws in book.worksheets)

data_filtered.to_excel(writer, "Main", cols=['Diff1', 'Diff2'])
writer.save()
登入後複製

說明

  • load_workbook 開啟現有的 Excel 檔案並指派給 book 變數。
  • ExcelWriter 已初始化使用 engine='openpyxl' 參數來使用 openpyxl 引擎寫作。
  • writer.book 屬性設定為 book 變量,將 writer 連結到現有工作簿。
  • writer.sheets 使用所有現有工作表的字典進行更新,確保「Main」工作表被識別並保留。
  • Pandas 的 to_excel 方法填入「Main」工作表的資料而不影響其他。
  • writer.save 完成操作,保留現有資料和新資料。

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

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板