Maison >développement back-end >Tutoriel Python >Comment ajouter de nouvelles feuilles à un fichier Excel existant à l'aide de Pandas ?

Comment ajouter de nouvelles feuilles à un fichier Excel existant à l'aide de Pandas ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-03 07:06:301100parcourir

How to Add New Sheets to an Existing Excel File Using Pandas?

Générer de nouvelles feuilles dans un fichier Excel existant avec Pandas

Lorsqu'ils traitent des données Excel en Python, les utilisateurs peuvent rencontrer le défi d'enregistrer de nouvelles feuilles dans un fichier Excel existant . Ce guide fournit une solution utilisant la bibliothèque Pandas, couvrant les limitations du moteur "xlsxwriter" et l'implémentation du moteur "openpyxl".

Comprendre le problème

Dans le code donné, le l'utilisateur crée un fichier Excel avec deux feuilles, "x1" et "x2". Cependant, toute tentative d'ajout de nouvelles feuilles, « x3 » et « x4 », remplace les données d'origine. Cela se produit car le moteur "xlsxwriter" enregistre uniquement les données dans un nouveau fichier ou écrase un fichier existant.

Solution utilisant le moteur "openpyxl"

Pour conserver les données existantes lors de l'ajout de nouvelles feuilles, utilisez le moteur "openpyxl". Le code suivant illustre cette approche :

<code class="python">import pandas as pd
import numpy as np
from openpyxl import load_workbook

path = r"C:\Users\fedel\Desktop\excelData\PhD_data.xlsx"

book = load_workbook(path)  # Load the existing Excel file
writer = pd.ExcelWriter(path, engine='openpyxl')  # Create a Pandas writer connected to the workbook
writer.book = book  # Assign the workbook to the Pandas writer

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')  # Write the new dataframes to the existing file
df4.to_excel(writer, sheet_name='x4')

writer.close()  # Save the changes to the file</code>

Explication

  1. Charger le fichier Excel existant : Cette ligne lit le fichier Excel existant dans un objet classeur en utilisant la fonction load_workbook.
  2. Créer un rédacteur Pandas : Ici, un Pandas ExcelWriter est créé avec le paramètre engine='openpyxl', qui spécifie l'utilisation du moteur "openpyxl".
  3. Attribuer le classeur à l'écrivain : L'attributwriter.book est défini sur l'objet classeur chargé, reliant l'écrivain Pandas au fichier existant.
  4. Générer un nouveau dataframes : Semblables au code d'origine, de nouveaux dataframes ("x3" et "x4") sont créés.
  5. Écrire de nouveaux dataframes : Les nouveaux dataframes sont enregistrés dans le fichier existant en utilisant la méthode to_excel, en spécifiant les noms des feuilles ("x3" et "x4").
  6. Enregistrer les modifications : Enfin, les modifications apportées par l'écrivain Pandas sont enregistrées dans le fichier Excel par appelant la méthodewriter.close().

WebSocket, ws et Dict

Dans le code suggéré à partir du lien donné :

  • WebSocket (ws) : cela fait référence à chaque feuille de calcul du classeur chargé.
  • ws.title : il représente le nom d'une feuille de calcul spécifique dans le classeur.
  • Dict : Le code utilise un dictionnaire pour créer un mappage entre les noms de feuille de calcul et les objets de la feuille de calcul. Cela permet à l'écrivain Pandas d'accéder à des feuilles spécifiques dans le classeur chargé.

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