Maison > développement back-end > Tutoriel Python > Comment puis-je utiliser Pandas pour écrire dans un fichier Excel sans écraser les données existantes ?

Comment puis-je utiliser Pandas pour écrire dans un fichier Excel sans écraser les données existantes ?

DDD
Libérer: 2024-12-11 11:34:11
original
271 Les gens l'ont consulté

How Can I Use Pandas to Write to an Excel File Without Overwriting Existing Data?

Gestion des écrasements d'Excel avec Pandas

Pandas fournit une option robuste pour écrire dans des fichiers Excel, mais un problème survient lors de l'écriture dans un fichier existant sans écraser son contenu. Par défaut, pandas.ExcelWriter remplace les données existantes lors de la création de feuilles.

Exemple et problème

Considérez le code suivant :

import pandas as pd

writer = pd.ExcelWriter('Masterfile.xlsx') 
data_filtered.to_excel(writer, "Main", cols=['Diff1', 'Diff2'])
writer.save()
Copier après la connexion

Dans ce scénario, "Masterfile.xlsx " a des onglets préexistants. Lorsque ce code s'exécute, une nouvelle feuille « Principale » est créée et remplie, mais tous les autres onglets sont effacés.

Solution

Pour éviter la perte de données, Pandas utilise la bibliothèque openpyxl pour travailler avec XLSX fichiers. Voici une version améliorée du code :

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()
Copier après la connexion

Explication

  • load_workbook ouvre le fichier Excel existant et l'affecte à la variable book.
  • ExcelWriter est initialisé avec le paramètre engine='openpyxl' pour utiliser le moteur openpyxl pour l'écriture.
  • Thewriter.book L'attribut est défini sur la variable book, reliant l'écrivain au classeur existant.
  • writer.sheets est mis à jour avec un dictionnaire de toutes les feuilles existantes, garantissant que la feuille "Principale" est reconnue et conservée.
  • La méthode to_excel de Pandas remplit les données de la feuille "Principale" sans affecter les autres.
  • writer.save termine l'opération, en préservant à la fois l'existant et le nouveau. données.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal