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

Pandas を使用して、既存のデータを上書きせずに Excel ファイルに書き込むにはどうすればよいですか?

DDD
リリース: 2024-12-11 11:34:11
オリジナル
306 人が閲覧しました

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 は XLSX を操作するために openpyxl ライブラリを採用しています。ファイル。コードの拡張バージョンは次のとおりです。

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 は初期化されます。 openpyxl エンジンを使用するには、engine='openpyxl' パラメータを使用します。 writing.
  • writer.book 属性は book 変数に設定され、ライターを既存のワークブックにリンクします。
  • writer.sheets は既存のすべてのシートの辞書で更新され、 「メイン」シートは認識され、保持されます。
  • Pandas の to_excel メソッドは、影響を与えることなく「メイン」シートのデータを入力します。 other.
  • writer.save は、既存のデータと新しいデータの両方を保持して操作を完了します。

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート