1

我能够将多个数据框保存在多个 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

所以我所有的 datframes 有 7 个类别,我想根据类别创建 7 个文件。

4

1 回答 1

1

我认为你需要:

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()
于 2020-08-05T07:40:16.957 回答