Сохранить список фреймов данных в многолистовой электронной таблице Excel



как я могу экспортировать список фреймов данных в одну электронную таблицу Excel?

Документы для to_excel состояние:




Примечания

Если передать существующий объект ExcelWriter, то лист будет добавлен
к существующей книге. Это может быть использовано для сохранения различных
Фреймы данных для одной книги



writer = ExcelWriter('output.xlsx')
df1.to_excel(writer, 'sheet1')
df2.to_excel(writer, 'sheet2')
writer.save()




после этого я подумал, что могу написать функция, которая сохраняет список фреймов данных в одну электронную таблицу следующим образом:



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


однако (со списком из двух небольших фреймов данных, каждый из которых может сохранить to_excel индивидуально), исключение (Edit: трассировка удалена):



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


предположительно я не призываю ExcelWriter правильно, как я должен быть для этого?

573   2  

2 ответов:

вы должны использовать собственные панды ExcelWriter класс:

from pandas import ExcelWriter
# from pandas.io.parsers 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()

в случае, если кому-то нужен пример того, как это сделать со словарем фреймов данных:

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

пример: save_xls(dict_df = my_dict, path = '~/my_path.xls')

Comments

    Ничего не найдено.