список фреймов данных, распределенных по рабочим листам, в одной электронной таблице pandas - PullRequest
2 голосов
/ 30 января 2020

Я пытаюсь создать электронную таблицу с pandas, которая группирует данные по коду и помещает каждую группировку в отдельную вкладку в таблице Excel.

Пока что я создал список фреймов данных но я не могу получить каждый фрейм данных на отдельной вкладке в электронной таблице.

fss_infile = pd.ExcelFile('Report.xlsx')
lvl_1 = fss_infile.parse(sheet_name ='Lvl 1')
list_dfs = [lvl_1.loc[lvl_1['pc_code_last_4']==val, :] for val in lvl_1['pc_code_last_4'].unique()]

for i in list_dfs:
    i.to_excel('output.xlsx')

Как получить каждый фрейм данных на отдельной вкладке с именем pc_code_last_4 value?

Ответы [ 2 ]

2 голосов
/ 30 января 2020

с использованием pd.GroupBy мы создаем пустой объект Excel, используя pd.ExcelWriter, а затем l oop поверх вашего фрейма данных, записывая соответствующие группы в ваш рабочий лист.

writer = pd.ExcelWriter('myfile.xlsx')
for group, data in df.groupby('pc_code_last_4'):
    data.to_excel(writer,sheet_name=f"{group}")
    print(f"{group} saved to spreadsheet")
writer.save()
1 голос
/ 30 января 2020

Вы ищете ExcelWriter. Это должно сделать:

writer = pd.ExcelWriter('Report.xlsx', engine='xlsxwriter')
for val in lvl_1['pc_code_last_4'].unique():
    df = lvl_1.loc[lvl_1['pc_code_last_4']==val, :]
    df.to_excel(writer, sheet_name=val)
writer.save()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...