Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Menambahkan DataFrame Baharu pada Helaian Excel Sedia Ada dalam Python Menggunakan Panda?

Bagaimana untuk Menambahkan DataFrame Baharu pada Helaian Excel Sedia Ada dalam Python Menggunakan Panda?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-02 15:22:11432semak imbas

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

Tambah Helaian Excel Sedia Ada dengan Bingkai Data Baharu Menggunakan Python Panda

Dalam artikel ini, kami akan meneroka cara menambahkan bingkai data baharu kepada bingkai data sedia ada Hamparan Excel menggunakan Python Panda.

Masalah:

Menambahkan yang baharu kerangka data ke helaian Excel sedia ada menggunakan fungsi Pandas to_excel() menimpa data sedia ada. Matlamatnya adalah untuk menambahkan data baharu pada penghujung helaian semasa, mengekalkan kandungan sedia ada.

Penyelesaian:

Untuk menangani isu ini, kami boleh memanfaatkan langkah berikut:

  1. Muat yang Sedia Ada Buku Kerja:

    • Gunakan pakej openpyxl untuk memuatkan buku kerja Excel sedia ada.
    • Simpan nama helaian sedia ada dalam senarai.
  2. Sediakan yang Baharu Bingkai data:

    • Alih keluar sebarang baris atau lajur yang tidak diperlukan daripada bingkai data baharu.
  3. Buat Penulis Buku Kerja Baharu:

    • Buat objek ExcelWriter menggunakan Pandas, menyatakan buku kerja sedia ada sebagai output.
    • Tetapkan enjin kepada "openpyxl", mod kepada "a", dan if_sheet_exists kepada "baharu" jika helaian sedia ada tidak wujud.
  4. Tulis yang Baharu Bingkai data:

    • Tulis bingkai data baharu pada helaian baharu yang dibuat oleh ExcelWriter.
    • Laraskan pemformatan sel mengikut keperluan.
  5. Salin Sel daripada Baharu kepada Sedia Ada Helaian:

    • Memandangkan Pandas tidak menyokong penambahan di tempat, kami menggunakan openpyxl untuk menyalin sel daripada helaian baharu ke helaian sedia ada, bermula pada penghujung data sedia ada.
  6. Alih keluar yang Baharu Helaian:

    • Selepas menyalin data, alih keluar helaian baharu yang telah dibuat untuk menulis bingkai data baharu.
  7. Simpan dan Tutup Buku Kerja:

    • Simpan buku kerja dan tutup ia.

Contoh:

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

Dengan mengikuti pendekatan ini, anda boleh menambahkan data baharu dengan lancar pada helaian Excel sedia ada tanpa menulis ganti kandungan sedia ada.

Atas ialah kandungan terperinci Bagaimana untuk Menambahkan DataFrame Baharu pada Helaian Excel Sedia Ada dalam Python Menggunakan Panda?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn