Voglio utilizzare file excel per memorizzare i dati elaborati con python. Il mio problema è che non riesco ad aggiungere fogli a un file excel esistente. Qui suggerisco un codice di esempio con cui lavorare per raggiungere questo problema
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()
Questo codice salva due DataFrame in due fogli, denominati rispettivamente "x1" e "x2". Se creo due nuovi DataFrame e provo a utilizzare lo stesso codice per aggiungere due nuovi fogli, "x3" e "x4", i dati originali vengono persi.
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()
Voglio un file Excel con quattro fogli: "x1", "x2", "x3", "x4". So che "xlsxwriter" non è l'unico "motore", esiste "openpyxl". Ho anche visto che ci sono già altre persone che hanno scritto su questo problema, ma ancora non riesco a capire come farlo.
Qui un codice tratto da questo link
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()
Dicono che funzioni, ma è difficile capire come. Non capisco cosa siano "ws.title", "ws" e "dict" in questo contesto.
Qual è il modo migliore per salvare "x1" e "x2", quindi chiudere il file, aprirlo di nuovo e aggiungere "x3" e "x4"?