Maison > développement back-end > Tutoriel Python > Comment Pandas peut-il ajouter des données à une feuille Excel existante sans les écraser ?

Comment Pandas peut-il ajouter des données à une feuille Excel existante sans les écraser ?

Linda Hamilton
Libérer: 2024-12-10 16:13:12
original
350 Les gens l'ont consulté

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

Écrire dans des fichiers Excel existants sans écraser : une solution Pandas

Lorsque vous travaillez avec des fichiers Excel à l'aide de pandas, écrire dans une feuille existante sans écraser les données existantes peuvent constituer un défi commun. Ce problème survient lorsque les pandas utilisent le comportement par défaut d'ExcelWriter, qui écrase les données existantes en créant une nouvelle feuille.

Pour contourner ce problème, vous pouvez exploiter le paramètre "engine" d'ExcelWriter, qui vous permet de spécifier le moteur Excel sous-jacent. En définissant ce paramètre sur "openpyxl", vous pouvez intégrer les fonctionnalités d'openpyxl avec les pandas.

Voici le code qui résout le problème :

import pandas
from openpyxl import load_workbook

# Load the existing Excel workbook
book = load_workbook('Masterfile.xlsx')

# Create an ExcelWriter object using the openpyxl engine
writer = pandas.ExcelWriter('Masterfile.xlsx', engine='openpyxl')

# Set the ExcelWriter's book attribute to the loaded workbook
writer.book = book

# Assign sheet names to the writer object's sheets attribute
writer.sheets = dict((ws.title, ws) for ws in book.worksheets)

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

# Save the updated workbook
writer.save()
Copier après la connexion

En spécifiant le moteur "openpyxl", le moteur modifié le code exploite la capacité d'openpyxl à accéder aux feuilles existantes dans le classeur. Cela permet aux pandas d'ajouter des données à la feuille « Principale » sans écraser les autres onglets.

Notez que vous devez vous assurer que la feuille « Principale » existe dans le classeur d'origine avant d'exécuter ce code pour éviter de créer une nouvelle feuille si la feuille n'existe pas.

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