Ajout de nouvelles feuilles à des fichiers Excel existants avec Pandas
Pandas fournit une interface pratique pour travailler avec des fichiers Excel. Cependant, lors de l’enregistrement de nouvelles feuilles dans un fichier existant, les utilisateurs rencontrent souvent des difficultés. Cet article aborde le problème et propose une solution complète.
Code existant :
Le code fourni enregistre deux DataFrames sur deux feuilles mais ne parvient pas à ajouter d'autres feuilles sans perdre le données originales en raison de la fermeture de l'objet ExcelWriter.
Meilleure approche :
Le flux de travail idéal consiste à créer un fichier Excel, à enregistrer certaines données, à fermer ExcelWriter, puis à rouvrir pour ajouter plus de feuilles. Cette approche garantit la préservation des données.
Intégration Openpyxl :
Pour ajouter des feuilles sans perdre de données, Pandas peut utiliser Openpyxl. Openpyxl permet la manipulation directe de fichiers Excel. En chargeant le fichier existant à l'aide de load_workbook et en le définissant comme étant le livre d'ExcelWriter, nous pouvons ajouter de nouvelles feuilles sans affecter celles existantes.
Exemple complet :
Voici un exemple complet :
<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" # Generate initial data x1 = np.random.randn(100, 2) df1 = pd.DataFrame(x1) x2 = np.random.randn(100, 2) df2 = pd.DataFrame(x2) # Write initial sheets writer = pd.ExcelWriter(path, engine='xlsxwriter') df1.to_excel(writer, sheet_name='x1') df2.to_excel(writer, sheet_name='x2') writer.close() # Open existing file and add new sheets book = load_workbook(path) writer = pd.ExcelWriter(path, engine='openpyxl') writer.book = book # Generate new data x3 = np.random.randn(100, 2) df3 = pd.DataFrame(x3) x4 = np.random.randn(100, 2) df4 = pd.DataFrame(x4) # Append new sheets df3.to_excel(writer, sheet_name='x3') df4.to_excel(writer, sheet_name='x4') writer.close()</code>
Ce code génère d'abord deux feuilles et ferme l'ExcelWriter. Ensuite, il rouvre le fichier et utilise Openpyxl pour ajouter deux feuilles supplémentaires, en préservant les données d'origine.
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!