Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Menambah Helaian Baharu pada Fail Excel Sedia Ada Menggunakan Panda?

Bagaimana untuk Menambah Helaian Baharu pada Fail Excel Sedia Ada Menggunakan Panda?

Barbara Streisand
Barbara Streisandasal
2024-11-03 07:06:301043semak imbas

How to Add New Sheets to an Existing Excel File Using Pandas?

Menjana Helaian Baharu dalam Fail Excel Sedia Ada dengan Panda

Apabila berurusan dengan data Excel dalam Python, pengguna mungkin menghadapi cabaran untuk menyimpan helaian baharu ke fail Excel sedia ada . Panduan ini menyediakan penyelesaian menggunakan perpustakaan Pandas, meliputi batasan enjin "xlsxwriter" dan pelaksanaan enjin "openpyxl".

Memahami Isu

Dalam kod yang diberikan, pengguna mencipta fail Excel dengan dua helaian, "x1" dan "x2." Walau bagaimanapun, cubaan untuk menambah helaian baharu, "x3" dan "x4," menggantikan data asal. Ini berlaku kerana enjin "xlsxwriter" hanya menyimpan data ke fail baharu atau menimpa fail sedia ada.

Penyelesaian Menggunakan Enjin "openpyxl"

Untuk mengekalkan data sedia ada semasa menambah helaian baharu, gunakan enjin "openpyxl". Kod berikut menunjukkan pendekatan ini:

<code class="python">import pandas as pd
import numpy as np
from openpyxl import load_workbook

path = r"C:\Users\fedel\Desktop\excelData\PhD_data.xlsx"

book = load_workbook(path)  # Load the existing Excel file
writer = pd.ExcelWriter(path, engine='openpyxl')  # Create a Pandas writer connected to the workbook
writer.book = book  # Assign the workbook to the Pandas writer

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')  # Write the new dataframes to the existing file
df4.to_excel(writer, sheet_name='x4')

writer.close()  # Save the changes to the file</code>

Penjelasan

  1. Muatkan fail Excel sedia ada: Baris ini membaca fail Excel sedia ada ke dalam objek buku kerja menggunakan fungsi load_workbook.
  2. Buat penulis Pandas: Di sini, Pandas ExcelWriter dicipta dengan parameter engine='openpyxl', yang menentukan penggunaan enjin "openpyxl".
  3. Tetapkan buku kerja kepada penulis: Atribut writer.book ditetapkan kepada objek buku kerja yang dimuatkan, memautkan penulis Panda ke fail sedia ada.
  4. Jana baharu bingkai data: Sama seperti kod asal, bingkai data baharu ("x3" dan "x4") dicipta.
  5. Tulis bingkai data baharu: Bingkai data baharu disimpan ke fail sedia ada menggunakan kaedah to_excel, menyatakan nama helaian ("x3" dan "x4").
  6. Simpan perubahan: Akhirnya, perubahan yang dibuat oleh penulis Pandas disimpan ke fail Excel oleh memanggil kaedah writer.close().

WebSocket, ws dan Dict

Dalam kod yang dicadangkan daripada pautan yang diberikan:

  • WebSocket (ws): Ini merujuk kepada setiap lembaran kerja dalam buku kerja yang dimuatkan.
  • ws.title: Ia mewakili nama lembaran kerja tertentu dalam buku kerja.
  • Dict: Kod menggunakan kamus untuk membuat pemetaan antara nama lembaran kerja dan objek lembaran kerja. Ini membolehkan penulis Pandas mengakses helaian tertentu dalam buku kerja yang dimuatkan.

Atas ialah kandungan terperinci Bagaimana untuk Menambah Helaian Baharu pada Fail Excel Sedia Ada 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