¿Cómo puedo exportar una lista de DataFrames a una hoja de cálculo de Excel?
Los documentos para el to_excel
estado:
Notas
Si pasa un objeto ExcelWriter existente, la hoja se agregará al libro de trabajo existente. Esto se puede usar para guardar diferentes DataFrames en un libro de trabajo
writer = ExcelWriter('output.xlsx')
df1.to_excel(writer, 'sheet1')
df2.to_excel(writer, 'sheet2')
writer.save()
Después de esto, pensé que podría escribir una función que guarde una lista de DataFrames en una hoja de cálculo de la siguiente manera:
from openpyxl.writer.excel import ExcelWriter
def save_xls(list_dfs, xls_path):
writer = ExcelWriter(xls_path)
for n, df in enumerate(list_dfs):
df.to_excel(writer,'sheet%s' % n)
writer.save()
Sin embargo (con una lista de dos DataFrames pequeños, cada uno de los cuales se puede guardar to_excel
individualmente), se genera una excepción (Editar: rastreo eliminado) :
AttributeError: 'str' object has no attribute 'worksheets'
Presumiblemente no estoy llamando ExcelWriter
correctamente, ¿cómo debería estar para hacer esto?
ExcelWriter
como administrador de contexto.with ExcelWriter(xls_path) as writer: df.to_excel(writer, sheet_name)
'sheet%s' % n
poco, por favor? ¿Qué hace y cómo funciona?En caso de que alguien necesite un ejemplo de cómo hacer esto con un diccionario de marcos de datos:
from pandas import ExcelWriter def save_xls(dict_df, path): """ Save a dictionary of dataframes to an excel file, with each dataframe as a seperate page """ writer = ExcelWriter(path) for key in dict_df: dict_df[key].to_excel(writer, key) writer.save()
ejemplo:
save_xls(dict_df = my_dict, path = '~/my_path.xls')
fuente
'%s' % key
? ¿Te importaría explicarlo? ¡Gracias!