Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Menambahkan Data pada Fail Excel Sedia Ada Menggunakan Panda Tanpa Tulis Ganti?

Bagaimana untuk Menambahkan Data pada Fail Excel Sedia Ada Menggunakan Panda Tanpa Tulis Ganti?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-27 09:37:10639semak imbas

How to Append Data to an Existing Excel File Using Pandas Without Overwriting?

Menulis ke Fail Excel Sedia Ada Tanpa Mengganti Data dengan Panda

Apabila menambah data baharu pada fail Excel sedia ada menggunakan panda, tingkah laku lalai ialah untuk data baharu menimpa sebarang kandungan sedia ada. Ini boleh menjadi masalah jika anda ingin mengekalkan data sedia ada pada helaian lain.

Masalahnya

Pertimbangkan kod berikut:

import pandas

writer = pandas.ExcelWriter('Masterfile.xlsx') 

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

writer.save()

Apabila kod ini dilaksanakan, ia akan menambah data dalam data_filtered pada helaian baharu bernama "Utama" dalam fail Excel Masterfile.xlsx. Walau bagaimanapun, ia juga akan memadamkan semua helaian lain dalam fail.

Penyelesaian

Untuk mengelak daripada menulis ganti data sedia ada, anda boleh menggunakan enjin ='openpyxl' pilihan dalam ExcelWriter. Ini membolehkan anda mengakses objek openpyxl asas yang memberikan lebih kawalan ke atas proses.

Begini cara mengubah suai kod di atas untuk ditambahkan pada fail Excel sedia ada tanpa menulis ganti:

import pandas
from openpyxl import load_workbook

book = load_workbook('Masterfile.xlsx')
writer = pandas.ExcelWriter('Masterfile.xlsx', engine='openpyxl') 
writer.book = book

## ExcelWriter for some reason uses writer.sheets to access the sheet.
## If you leave it empty it will not know that sheet Main is already there
## and will create a new sheet.

writer.sheets = dict((ws.title, ws) for ws in book.worksheets)

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

writer.save()

Oleh secara eksplisit menetapkan writer.sheets kepada kamus helaian sedia ada, kami memastikan ExcelWriter mengetahui helaian sedia ada dan tidak akan menulis ganti mereka.

Atas ialah kandungan terperinci Bagaimana untuk Menambahkan Data pada Fail Excel Sedia Ada Menggunakan Panda Tanpa Tulis Ganti?. 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