【问题标题】:Is there a way to iterate over multiple dataframes to write them to multiple excel sheets with formatting?有没有办法遍历多个数据框以将它们写入多个带有格式的 Excel 工作表?
【发布时间】:2019-03-27 22:08:02
【问题描述】:

我正在处理具有 8 个数据框的 pandas,并希望将它们中的每一个都写入 Excel 工作簿中自己的工作表中。我也想对每张纸应用格式。如果我复制并粘贴代码 8 次,我可以做到这一点,并调整工作表名称。但是,我试图通过使用 for 循环遍历我的数据帧来清理代码。但是我最终得到: TypeError: 'DataFrame' 对象是可变的,因此它们不能被散列。

with pd.ExcelWriter('Excel_Test.xlsx') as writer:
    df_list = [df_1 ,df_2 ,df_3 ,df_4 ,df_5 ,df_6 ,df_7 ,df_8]   
    for sheet in df_list:
        sheet.to_excel(writer, sheet_name=sheet, index=False)
        worksheet = writer.sheets[sheet]
        worksheet.set_zoom(80)
        worksheet.set_column('A:A', 14)
        worksheet.set_column('B:B', 50)
        worksheet.set_column('C:C', 30)
        worksheet.set_column('D:D', 30)
        worksheet.set_column('E:E', 25)
        worksheet.set_column('F:F', 20)
        money_format = writer.book.add_format({'num_format': '$#,##0'})
        integer_format = writer.book.add_format({'num_format': '#,##0'})
        worksheet.set_column('H:H', 9, integer_format)
writer.save()

目标是能够让 for 循环遍历我的数据框列表,并使用设置的格式将每个数据框写入 excel。

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    sheet_name 参数应该是一个字符串,而不是DataFrame 对象。由于您使用 DataFrame 对象作为 writer.sheets 字典中的键,因此 Python 正在尝试对其进行哈希处理。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-01-22
      • 2020-09-17
      • 2021-01-14
      • 2019-07-03
      • 2022-01-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多