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

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

DDD
DDDオリジナル
2024-12-25 05:57:13796ブラウズ

How Can I Append Data to an Existing Excel Sheet Using Pandas Without Overwriting?

Pandas を使用してデータを上書きせずに既存の Excel ファイルに書き込む

Pandas を使用して既存のデータを上書きせずに Excel ファイルに書き込む場合、次のことを追加するときに一般的なシナリオが発生します。以前に作成したファイルに新しいシートを追加します。ただし、pandas のデフォルトの動作では、ファイル全体が上書きされ、既存のタブがすべて消去されます。この問題を解決するには、openpyxl ライブラリを利用します。

Openpyxl と Pandas ExcelWriter の統合

Pandas は、openpyxl を利用して XLSX ファイルを処理します。 ExcelWriter の 'engine' パラメーターを 'openpyxl' に明示的に設定すると、ファイルのコンテンツをより詳細に制御できるようになります。

コードの実装

import pandas
from openpyxl import load_workbook

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

# Populate a dictionary of existing sheets for ExcelWriter
writer.sheets = dict((ws.title, ws) for ws in book.worksheets)

# Write to the desired sheet without overwriting
data_filtered.to_excel(writer, "Main", cols=['Diff1', 'Diff2'])

writer.save()

このコードでは:

  • openpyxl のメソッドを使用して既存の Excel ファイルをロードしますload_workbook.
  • 「engine」パラメータを「openpyxl」に設定して Pandas ExcelWriter オブジェクトを作成し、ロードされたワークブックにリンクします。
  • writer.sheets ディクショナリに既存のシートを設定します。 ExcelWriter が新しい「メイン」シートを作成しないようにします。
  • 必要なデータを「メイン」シートに書き込みますワークブック内の他のセクションを上書きする必要はありません。
  • 最後に、更新されたワークブックを保存して変更を保持します。

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

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