Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Menggunakan Panda untuk Menulis ke Fail Excel Tanpa Mengganti Data Sedia Ada?

Bagaimanakah Saya Boleh Menggunakan Panda untuk Menulis ke Fail Excel Tanpa Mengganti Data Sedia Ada?

DDD
DDDasal
2024-12-11 11:34:11348semak imbas

How Can I Use Pandas to Write to an Excel File Without Overwriting Existing Data?

Mengendalikan Timpa Excel dengan Panda

Panda menyediakan pilihan yang mantap untuk menulis ke fail Excel, tetapi isu timbul apabila menulis ke fail sedia ada tanpa menimpa kandungannya. Secara lalai, panda.ExcelWriter mengatasi data sedia ada semasa membuat helaian.

Contoh dan Masalah

Pertimbangkan kod berikut:

import pandas as pd

writer = pd.ExcelWriter('Masterfile.xlsx') 
data_filtered.to_excel(writer, "Main", cols=['Diff1', 'Diff2'])
writer.save()

Dalam senario ini, "Masterfile.xlsx " mempunyai tab sedia ada. Apabila kod ini dilaksanakan, helaian "Utama" baharu dicipta dan diisi, tetapi semua tab lain dipadamkan.

Penyelesaian

Untuk mengelakkan kehilangan data, Pandas menggunakan perpustakaan openpyxl untuk bekerja dengan XLSX fail. Berikut ialah versi kod yang dipertingkatkan:

import pandas as pd
from openpyxl import load_workbook

book = load_workbook('Masterfile.xlsx')
writer = pd.ExcelWriter('Masterfile.xlsx', engine='openpyxl') 
writer.book = book
writer.sheets = dict((ws.title, ws) for ws in book.worksheets)

data_filtered.to_excel(writer, "Main", cols=['Diff1', 'Diff2'])
writer.save()

Penjelasan

  • load_workbook membuka fail Excel sedia ada dan menyerahkannya kepada pembolehubah buku.
  • ExcelWriter dimulakan dengan parameter engine='openpyxl' untuk menggunakan enjin openpyxl untuk menulis.
  • Atribut writer.book ditetapkan kepada pembolehubah buku, memautkan penulis ke buku kerja sedia ada.
  • writer.sheets dikemas kini dengan kamus semua helaian sedia ada, memastikan bahawa Helaian "Utama" dikenali dan dikekalkan.
  • Kaedah to_excel Panda mengisi data untuk helaian "Utama" tanpa menjejaskan yang lain.
  • writer.save melengkapkan operasi, mengekalkan kedua-dua data sedia ada dan baharu.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggunakan Panda untuk Menulis ke Fail Excel Tanpa Mengganti Data Sedia Ada?. 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