Maison >développement back-end >Tutoriel Python >Comment puis-je ajouter des données à une feuille Excel existante à l'aide de Pandas sans écraser ?

Comment puis-je ajouter des données à une feuille Excel existante à l'aide de Pandas sans écraser ?

DDD
DDDoriginal
2024-12-25 05:57:13796parcourir

How Can I Append Data to an Existing Excel Sheet Using Pandas Without Overwriting?

Écrire dans des fichiers Excel existants sans écraser les données à l'aide de Pandas

Lorsque vous utilisez des pandas pour écrire dans des fichiers Excel sans écraser les données existantes, un scénario courant se produit lorsque vous souhaitez ajouter une nouvelle feuille dans un fichier créé précédemment. Cependant, le comportement par défaut des pandas écrase l'intégralité du fichier, effaçant tous les onglets existants. Pour surmonter ce problème, nous pouvons exploiter la bibliothèque openpyxl.

Intégration Openpyxl avec Pandas ExcelWriter

Pandas utilise openpyxl pour gérer les fichiers XLSX. En définissant explicitement le paramètre « moteur » dans ExcelWriter sur « openpyxl », nous pouvons accéder à un contrôle plus granulaire sur le contenu du fichier.

Implémentation du code

import pandas
from openpyxl import load_workbook

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

# Populate a dictionary of existing sheets for ExcelWriter
writer.sheets = dict((ws.title, ws) for ws in book.worksheets)

# Write to the desired sheet without overwriting
data_filtered.to_excel(writer, "Main", cols=['Diff1', 'Diff2'])

writer.save()

Dans ce code :

  • Nous chargeons le fichier Excel existant en utilisant openpyxl load_workbook.
  • Nous créons un objet Pandas ExcelWriter avec le paramètre 'engine' défini sur 'openpyxl', le liant à notre classeur chargé.
  • Nous remplissons le dictionnairewriter.sheets avec les feuilles existantes pour empêcher ExcelWriter de créer une nouvelle feuille "Principale".
  • Nous écrivons les données souhaitées dans la feuille "Principale" sans écraser aucune autre sections du classeur.
  • Enfin, nous enregistrons le classeur mis à jour pour conserver les modifications.

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!

Déclaration:
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