una seleccionar manejo filas extraer data columnas columna agregar python pandas openpyxl

manejo - seleccionar filas dataframe python



Guarde la lista de DataFrames en la hoja de cálculo Excel de hojas múltiples (2)

Deberías usar pandas propias de la clase ExcelWriter :

from pandas import ExcelWriter # from pandas.io.parsers import ExcelWriter

Entonces la función save_xls funciona como se espera:

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()

¿Cómo puedo exportar una lista de DataFrames en una hoja de cálculo de Excel?
Los documentos para el estado to_excel :

Notas
Si pasa un objeto ExcelWriter existente, la hoja se agregará al libro 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 guarda 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 pequeños DataFrames, cada uno de los cuales puede guardar to_excel individualmente), se to_excel una excepción (Edit: traceback removed) :

AttributeError: ''str'' object has no attribute ''worksheets''

Presumiblemente, no estoy llamando a ExcelWriter correctamente, ¿cómo debería estar para poder hacer esto?


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, ''%s'' % key) writer.save()

ejemplo: save_xls(dict_df = my_dict, path = ''~/my_path.xls'')