Maison >développement back-end >Tutoriel Python >Comment puis-je ajouter de nouvelles feuilles à un fichier Excel existant sans écraser les données à l'aide de Pandas ?

Comment puis-je ajouter de nouvelles feuilles à un fichier Excel existant sans écraser les données à l'aide de Pandas ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-03 04:12:03869parcourir

How Can I Add New Sheets to an Existing Excel File Without Overwriting Data Using Pandas?

Enregistrement de nouvelles feuilles dans un fichier Excel existant avec Pandas

L'objectif est d'écrire plusieurs feuilles dans un fichier Excel existant sans écraser l'existant data.

Code original :

Le code fourni enregistre deux DataFrames sur deux feuilles dans un fichier Excel à l'aide du moteur 'xlsxwriter'. Cependant, tenter d'ajouter de nouvelles feuilles entraîne la perte des données d'origine.

Utilisation du moteur 'openpyxl' :

Pour conserver les données existantes, utilisez le moteur 'openpyxl' moteur. Le code ci-dessous montre comment procéder :

import pandas as pd
import numpy as np
from openpyxl import load_workbook

path = r"C:UsersfedelDesktopexcelDataPhD_data .xlsx"

Créer le fichier Excel avec les feuilles initiales

x1 = np.random.randn(100, 2)
df1 = pd.DataFrame(x1)

x2 = np.random.randn(100, 2)
df2 = pd.DataFrame(x2)

writer = pd.ExcelWriter(path, engine='xlsxwriter')
df1.to_excel (writer, sheet_name='x1')
df2.to_excel(writer, sheet_name='x2')
writer.close()

Chargez le classeur et joignez-le au rédacteur

book = load_workbook(path)
writer = pd.ExcelWriter(path, engine='openpyxl')
writer.book = book

Ajouter de nouvelles feuilles et DataFrames

x3 = np.random.randn(100, 2)
df3 = pd.DataFrame(x3)

x4 = np.random.randn(100, 2)
df4 = pd.DataFrame (x4)

df3.to_excel(writer, sheet_name='x3')
df4.to_excel(writer, sheet_name='x4')
writer.close()

Comprendre le code :

  • load_workbook charge le fichier Excel existant.
  • Joignez le classeur chargé à l'objet écrivain à l'aide de l'écrivain .book = book.
  • Ajoutez de nouvelles feuilles et DataFrames comme avant d'utiliser to_excel.
  • Fermez le rédacteur pour enregistrer les modifications.

Le code parcourt les feuilles de calcul dans le classeur et les affecte à un dictionnaire où la clé est le titre de la feuille et la valeur est l'objet de la feuille. Cela permet à l'auteur d'ajouter de nouvelles feuilles et données au fichier existant sans écraser les feuilles existantes.

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