É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()
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!