ホームページ >バックエンド開発 >Python チュートリアル >Pandas を使用して Python で既存の Excel シートに新しいデータフレームを追加する方法

Pandas を使用して Python で既存の Excel シートに新しいデータフレームを追加する方法

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-02 15:22:11424ブラウズ

How to Append a New DataFrame to an Existing Excel Sheet in Python Using Pandas?

Python Pandas を使用して既存の Excel シートに新しいデータフレームを追加する

この記事では、既存の Excel シートに新しいデータフレームを追加する方法を説明します。 Pythonを使用したExcelスプレッドシートPandas.

問題:

Pandas の to_excel() 関数を使用して既存の Excel シートに新しいデータフレームを追加すると、既存のデータが上書きされます。目標は、既存のコンテンツを維持しながら、新しいデータを現在のシートの末尾に追加することです。

解決策:

この問題に対処するには、次の手順を利用できます。

  1. 既存のものをロードワークブック:

    • openpyxl パッケージを使用して既存の Excel ワークブックをロードします。
    • 既存のシート名をリストに保存します。
  2. 新しいものを準備するデータフレーム:

    • 新しいデータフレームから不要な行または列を削除します。
  3. 新しいワークブック ライターを作成します:

    • を作成するPandas を使用し、既存のワークブックを出力として指定する ExcelWriter オブジェクト。
    • 既存のシートが存在しない場合は、エンジンを「openpyxl」、モードを「a」に設定し、if_sheet_exists を「new」に設定します。
  4. 新しいものを書くデータフレーム:

    • ExcelWriter によって作成された新しいシートに新しいデータフレームを書き込みます。
    • 必要に応じてセルの書式設定を調整します。
  5. セルを新規から既存にコピーSheet:

    • Pandas はインプレース追加をサポートしていないため、openpyxl を使用して、既存のデータの末尾から開始して新しいシートから既存のシートにセルをコピーします。
  6. 新しいものを削除シート:

    • データをコピーした後、新しいデータフレームを書き込むために作成された新しいシートを削除します。
  7. ワークブックを保存して閉じます:

    • ワークブックを保存します

例:

import pandas as pd
import openpyxl
from openpyxl.utils import get_column_letter

# Load existing workbook
workbook = openpyxl.load_workbook("existing_excel.xlsx")
sheet_names = workbook.sheetnames

# Prepare new dataframe
new_df = pd.DataFrame({
    "Name": ["Alice", "Bob", "Carol"],
    "Age": [25, 30, 35]
})

# Create new workbook writer
with pd.ExcelWriter("existing_excel.xlsx", engine="openpyxl", mode="a", if_sheet_exists="new") as writer:
    # Write new dataframe
    new_df.to_excel(writer, sheet_name="NewData", index=False)

    # Get worksheet objects
    new_sheet = writer.sheets["NewData"]
    existing_sheet = workbook["ExistingData"]

    # Get last row in existing sheet
    last_row = existing_sheet.max_row

    # Copy cells from new sheet to existing sheet
    copy_excel_cell_range(
        src_ws=new_sheet,
        tgt_ws=existing_sheet,
        src_min_row=2,
        src_max_row=new_sheet.max_row,
        tgt_min_row=last_row + 1,
        with_style=True
    )

    # Remove temporary sheet
    workbook.remove(new_sheet)

# Save and close
workbook.save("existing_excel.xlsx")

このアプローチに従うと、既存の Excel シートを上書きせずに、既存の Excel シートに新しいデータをシームレスに追加できます。コンテンツ。

以上がPandas を使用して Python で既存の Excel シートに新しいデータフレームを追加する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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