Comment enregistrer une nouvelle feuille dans un fichier Excel existant, en utilisant Pandas?

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 fiches à un fichier excel. Ici je vous propose un exemple de code pour les travaux afin de parvenir à cette question

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 permet d'économiser deux DataFrames à deux feuilles, nommé "x1" et "x2", respectivement. Si j'ai créer deux nouveaux DataFrames et essayez d'utiliser le même code pour ajouter deux nouvelles feuilles, 'x3' et 'x4', les données d'origine est perdue.

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 est "openpyxl'. J'ai aussi vu qu'il y a déjà d'autres personnes qui ont écrit sur cette question, mais je ne peux pas comprendre comment le faire.

Ici un code à partir de ce 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()

Ils disent que cela fonctionne, mais il est difficile de comprendre comment. Je ne comprends pas ce que "ws.titre", "ws", et "dict" sont dans ce contexte.

Qui est le meilleur moyen d'économiser de "x1" et "x2", puis fermez le fichier, l'ouvrir à nouveau et ajouter "x3" et "x4"?

source d'informationauteur Stefano Fedele