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

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

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-03 04:12:03830ブラウズ

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

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

目的は、既存の Excel ファイルに複数のシートを上書きせずに書き込むことです。 data.

元のコード:

提供されたコードは、「xlsxwriter」エンジンを使用して、2 つの DataFrame を Excel ファイルの 2 つのシートに保存します。ただし、新しいシートを追加しようとすると、元のデータが失われます。

「openpyxl」エンジンの使用:

既存のデータを保存するには、「openpyxl」を使用してください。エンジン。以下のコードは、その方法を示しています。

import pandas as pd
import numpy as np
from openpyxl import load_workbook

path = r"C:UsersfedelDesktopexcelDataPhD_data .xlsx"

初期シートで Excel ファイルを作成します

x1 = np.random.randn(100, 2)
df1 = pd.DataFrame(x1)

x2 = np.random.randn(100, 2)
df2 = pd.DataFrame(x2)

writer = pd.ExcelWriter(path, Engine='xlsxwriter')
df1.to_excel (writer,sheet_name='x1')
df2.to_excel(writer,sheet_name='x2')
writer.close()

ワークブックをロードしてライターにアタッチします

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

新しいシートと DataFrame を追加します

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()

コードの理解:

  • load_workbook は既存の Excel ファイルを読み込みます。
  • writer を使用して、読み込まれたワークブックを Writer オブジェクトにアタッチします。 .book = book.
  • to_excel を使用する前と同様に、新しいシートと DataFrame を追加します。
  • ライターを閉じて変更を保存します。

コードはワークシートをループします。ワークブック内でそれらをディクショナリに割り当てます。キーはシート タイトル、値はシート オブジェクトです。これにより、ライターは既存のシートを上書きせずに、新しいシートとデータを既存のファイルに追加できます。

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

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