Сохранение нескольких фреймов данных в листах Excel и разных файлах Excel в зависимости от условия - PullRequest
1 голос
/ 05 августа 2020

Я могу сохранить несколько фреймов данных на нескольких листах Excel.

    writer = pd.ExcelWriter('Cloud.xlsx', engine='xlsxwriter')
    
    
    frames = {'Image': df1, 'Objects': df2,  'Text': df3 , 'Labels': df4}
    
    for sheet, frame in  frames.items():
        frame.to_excel(writer, sheet_name = sheet)

writer.save()

Теперь я хочу создать несколько файлов на основе столбца фреймов данных. Например, я хочу создать 4 файла Excel:

df1

Category              URL          Obj
A               example.com       Chair
A               example2.com      table
B               example3.com      glass
B               example4.com      tv

Итак, все мои кадры данных имеют 7 категорий, и я хочу создать 7 файлов на основе категории.

1 Ответ

1 голос
/ 05 августа 2020

Думаю нужно:

frames = {'Image': df1, 'Objects': df2,  'Text': df3 , 'Labels': df4}

for sheet, frame in  frames.items():
    for cat, g in frame.groupby('Category'):
        # if file does not exist
        if not os.path.isfile(f'{cat}.xlsx'):
            writer = pd.ExcelWriter(f'{cat}.xlsx')
        else: # else it exists
            writer = pd.ExcelWriter(f'{cat}.xlsx', mode='a', engine='openpyxl')

        g.to_excel(writer, sheet_name = sheet)
        writer.save()
...