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
Lepaskan: 2024-12-11 11:34:11
asal
271 orang telah melayarinya

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()
Salin selepas log masuk

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()
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan