首頁 >後端開發 >Python教學 >如何在 Pandas 中將新工作表新增至現有 Excel 檔案而不覆蓋?

如何在 Pandas 中將新工作表新增至現有 Excel 檔案而不覆蓋?

Linda Hamilton
Linda Hamilton原創
2024-11-03 02:49:29332瀏覽

How to Add New Sheets to an Existing Excel File Without Overwriting in Pandas?

如何在新增工作表時保留現有Excel 工作表

在Pandas 中,將新工作表儲存到現有Excel文件中提出了保留的挑戰原始內容。為了解決這個問題,我們將探索一種使用「openpyxl」的有效方法。

問題

Pandas 的預設行為是在新增工作表時覆蓋現有工作表。當我們打算將新資料附加到現有文件時,這可能會導致資料遺失。

使用'openpyxl'的解決方案

'openpyxl'提供了一種處理現有文件的方法工作簿而無需覆蓋。以下是逐步說明:

  1. 載入現有工作簿:使用 load_workbook() 載入現有 Excel 檔案。
  2. 建立 ExcelWriter: 使用引擎 'openpyxl' 建立一個 ExcelWriter 對象,並指定與現有文件相同的路徑。
  3. 關聯 Writer 和 Workbook: 將 writer 的 book 屬性設定為已載入工作簿來連接它們。
  4. 編寫新工作表:透過在每個 DataFrame 上呼叫 to_excel() 方法,提供適當的工作表名稱,將新工作表附加到現有工作簿。
  5. 關閉 Writer: 新增所有工作表後,關閉 ExcelWriter 以儲存變更。

範例:

這裡是一個範例程式碼來說明這個過程:

<code class="python">import pandas as pd
from openpyxl import load_workbook

# Load existing workbook
book = load_workbook('existing.xlsx')

# Create ExcelWriter and associate it with the workbook
writer = pd.ExcelWriter('existing.xlsx', engine='openpyxl')
writer.book = book

# Append new sheets
new_df1 = pd.DataFrame({'x': [1, 2, 3]})
new_df2 = pd.DataFrame({'y': [4, 5, 6]})

new_df1.to_excel(writer, sheet_name='NewSheet1')
new_df2.to_excel(writer, sheet_name='NewSheet2')

# Save changes
writer.close()</code>

在此範例中,程式碼保留「 existing.xlsx」中的現有工作表並新增兩個新工作表「NewSheet1」和「NewSheet2」。

以上是如何在 Pandas 中將新工作表新增至現有 Excel 檔案而不覆蓋?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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