ホームページ  >  記事  >  バックエンド開発  >  既存のデータを上書きせずに、パンダを使用して既存の Excel ファイルに新しいシートを追加するにはどうすればよいですか?

既存のデータを上書きせずに、パンダを使用して既存の Excel ファイルに新しいシートを追加するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-02 23:33:291085ブラウズ

How Can I Add New Sheets to an Existing Excel File Using Pandas Without Overwriting Existing Data?

Pandas を使用して既存の Excel ファイルに新しいシートを保存する

Python で処理されたデータを Excel スプレッドシートに保存することを目的としていますが、新しいシートの追加で問題が発生します既存のファイルに。提供されているコードでは、元のデータの上書きに関する懸念が生じます。

背景

新しい Excel シートを作成し、既存のシートを保持するには、2 つのオプションが利用可能です:

xlsxwriter

コードは 'xlsxwriter' をExcel ファイルを作成して保存するためのエンジン。ただし、同じファイルに後続のシートを追加すると、前のシートが上書きされます。

openpyxl

これを克服するには、「openpyxl」をエンジンとして利用できます。既存のデータを失わずに新しいシートを追加できます。

openpyxl による実装

  1. 「load_workbook」を使用して既存の Excel ファイルを読み込みます。
  2. 'openpyxl' を指定して ExcelWriter オブジェクトを作成します。 Engine.
  3. ロードされたワークブックを ExcelWriter の 'book' 属性に割り当てます。
  4. 新しい DataFrame を目的のシートに書き込みます。
  5. ExcelWriter を閉じて変更を保存します。
<code class="python">path = r"C:\Users\fedel\Desktop\excelData\PhD_data.xlsx"

book = load_workbook(path)
writer = pd.ExcelWriter(path, engine='openpyxl')
writer.book = book

x3 = np.random.randn(100, 2)
df3 = pd.DataFrame(x3)

x4 = np.random.randn(100, 2)
df4 = pd.DataFrame(x4)

df3.to_excel(writer, sheet_name='x3')
df4.to_excel(writer, sheet_name='x4')
writer.close()</code>

を理解するコード

  • ws.title は、ロードされたワークブック内の各ワークシートのシート タイトルを表します。
  • ws は、各ワークシートを表しますobject.
  • dict は辞書の作成に使用されますここで、各キーはシート タイトルであり、対応する値はワークシート オブジェクトです。

提供された例は、Excel ファイルを生成する方法を示しています。元のデータを失わずに 2 つのシートを追加します。

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

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