Je veux utiliser des fichiers excel pour stocker des données élaborées avec python. Mon problème est que je ne peux pas ajouter des feuilles à un fichier excel existant. Je vous propose ici un exemple de code avec lequel vous pouvez travailler pour résoudre ce problème.
import pandas as pd
import numpy as np
path = r"C:\Users\fedel\Desktop\excelData\PhD_data.xlsx"
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.save()
writer.close()
Ce code enregistre deux DataFrames dans deux feuilles, nommées respectivement "x1" et "x2". Si je crée deux nouveaux DataFrames et que j'essaie d'utiliser le même code pour ajouter deux nouvelles feuilles, "x3" et "x4", les données originales sont perdues.
import pandas as pd
import numpy as np
path = r"C:\Users\fedel\Desktop\excelData\PhD_data.xlsx"
x3 = np.random.randn(100, 2)
df3 = pd.DataFrame(x3)
x4 = np.random.randn(100, 2)
df4 = pd.DataFrame(x4)
writer = pd.ExcelWriter(path, engine = 'xlsxwriter')
df3.to_excel(writer, sheet_name = 'x3')
df4.to_excel(writer, sheet_name = 'x4')
writer.save()
writer.close()
Je veux un fichier excel avec quatre feuilles : x1', 'x2', 'x3', 'x4'. Je sais que "xlsxwriter" n'est pas le seul "moteur", il y a aussi "openpyxl". J'ai également vu que d'autres personnes ont déjà écrit sur ce sujet, mais je n'arrive toujours pas à comprendre comment faire.
Voici un code tiré de ce document lien
import pandas
from openpyxl import load_workbook
book = load_workbook('Masterfile.xlsx')
writer = pandas.ExcelWriter('Masterfile.xlsx', engine='openpyxl')
writer.book = book
writer.sheets = dict((ws.title, ws) for ws in book.worksheets)
data_filtered.to_excel(writer, "Main", cols=['Diff1', 'Diff2'])
writer.save()
On dit que ça marche, mais il est difficile de savoir comment. Je ne comprends pas ce que sont "ws.title", "ws" et "dict" dans ce contexte.
Quelle est la meilleure façon d'enregistrer "x1" et "x2", puis de fermer le fichier, de l'ouvrir à nouveau et d'ajouter "x3" et "x4" ?