Eu quero usar arquivos do Excel para armazenar dados elaborados com python. Meu problema é que não consigo adicionar planilhas a um arquivo excel existente. Aqui, sugiro um código de amostra para trabalhar a fim de resolver esse 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()
Este código salva dois DataFrames em duas planilhas, denominadas "x1" e "x2", respectivamente. Se eu criar dois novos DataFrames e tentar usar o mesmo código para adicionar duas novas planilhas, 'x3' e 'x4', os dados originais serão perdidos.
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()
Quero um arquivo Excel com quatro folhas: 'x1', 'x2', 'x3', 'x4'. Eu sei que 'xlsxwriter' não é o único "motor", existe 'openpyxl'. Também vi que já existem outras pessoas que escreveram sobre esse assunto, mas ainda não consigo entender como fazer isso.
Aqui está um código retirado deste 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()
Dizem que funciona, mas é difícil descobrir como. Não entendo o que "ws.title", "ws" e "dict" são neste contexto.
Qual é a melhor maneira de salvar "x1" e "x2", fechar o arquivo, abri-lo novamente e adicionar "x3" e "x4"?