ホームページ >バックエンド開発 >Python チュートリアル >既存のシートを上書きせずに、既存の Excel ファイルに Pandas データを追加するにはどうすればよいですか?

既存のシートを上書きせずに、既存の Excel ファイルに Pandas データを追加するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-11 11:09:11937ブラウズ

How Can I Append Pandas Data to an Existing Excel File Without Overwriting Existing Sheets?

Openpyxl を使用して既存の Excel ファイルに Pandas データを保存する

既存の Excel ファイルを操作する場合、データの上書きを避けることが重要です。 Pandas では、to_excel() メソッドを使用して既存のファイルに書き込むときにこの問題が発生することがあります。

問題

次のコードは、既存の Excel の特定のシートに DataFrame を書き込もうとします。 file:

import pandas

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

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

writer.save()

この問題は、Pandas がファイル内の他のすべてのシートを削除し、新しく作成された という名前のシートだけを残すために発生します。 "Main."

解決策

この問題に対処するには、Pandas が XLSX ファイルを処理するために内部で使用する openpyxl ライブラリを活用できます。 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()

以上が既存のシートを上書きせずに、既存の Excel ファイルに Pandas データを追加するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。