【问题标题】:Saving multiple dataframe in excel sheets and different excel files based on the condition根据条件在excel表和不同的excel文件中保存多个数据框
【发布时间】:2020-11-25 08:12:28
【问题描述】:

我可以将多个数据框保存在多个 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 个文件。

【问题讨论】:

    标签: python excel pandas write


    【解决方案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()
    

    【讨论】:

    • 它看起来不错,但它只生成第一个类别的文件。
    • 它只是将最后一个数据框保存在 excel 文件的一张表中
    • 我提供了示例数据,据此应该有 2 个文件.. A.xlsx 和 B.xlsx/ 每个文件应该有 4 张表,这将是所有 4 个数据框。跨度>
    猜你喜欢
    • 1970-01-01
    • 2019-06-22
    • 1970-01-01
    • 1970-01-01
    • 2022-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-20
    相关资源
    最近更新 更多