Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Menambahkan Data pada Fail Excel Sedia Ada Menggunakan Panda Tanpa Tulis Ganti?
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!