Maison > développement back-end > Tutoriel Python > Comment puis-je ajouter des données Pandas à un fichier Excel existant sans écraser les feuilles existantes ?

Comment puis-je ajouter des données Pandas à un fichier Excel existant sans écraser les feuilles existantes ?

Linda Hamilton
Libérer: 2024-12-11 11:09:11
original
959 Les gens l'ont consulté

How Can I Append Pandas Data to an Existing Excel File Without Overwriting Existing Sheets?

Enregistrement des données Pandas dans des fichiers Excel existants à l'aide d'Openpyxl

Lorsque vous travaillez avec des fichiers Excel existants, il est crucial d'éviter d'écraser les données. Dans Pandas, vous pouvez rencontrer ce problème lors de l'écriture dans un fichier existant à l'aide de la méthode to_excel().

Problème

Le code suivant tente d'écrire un DataFrame dans une feuille spécifique dans un Excel existant fichier :

import pandas

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

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

writer.save()
Copier après la connexion

Le problème survient car Pandas supprime toutes les autres feuilles du fichier, ne laissant que la feuille nouvellement créée nommée "Principal."

Solution

Pour résoudre ce problème, nous pouvons exploiter la bibliothèque openpyxl, que Pandas utilise en interne pour gérer les fichiers XLSX. En chargeant le classeur existant à l'aide de openpyxl.load_workbook() et en l'attribuant à l'objet ExcelWriter, nous pouvons modifier le dictionnaire de feuilles pour garantir que les feuilles existantes sont conservées.

Voici le code modifié :

import pandas
from openpyxl import load_workbook

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

# Assign the sheet dictionary to preserve existing sheets
writer.sheets = dict((ws.title, ws) for ws in book.worksheets)

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

writer.save()
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal