如何将 DataFrame 导出到多张 Excel 文件

假设我有一个 8000 行 x 7 列的数据框。


数据概览


data = pd.read_excel('tmp.xlsx')

data.head(10)

ID          Type    CatID   Val1    val2    Comment      Disposition

20192658     N       52     256     358     Processing    In Progress

20192658     N       53     258     365     repairing     In Progress

20192658     N       53     258     365     Processed     Resloved

20192753     K       98     324     347     Processing    In Progress

20192753     K       87     365     378     Repairing     In Progress

20192753     K       84     357     364     Processed     Resolved

20192854     J       98     324     347     Processing    In Progress

20192854     J       87     365     378     Repairing     In Progress

20192854     J       84     357     364     Processed     Resolved

20192789     M       96     369     345     Processing    In Progress

数据框中大约有 197 个唯一 ID。


我正在尝试将每个 ID 的数据导出到 Excel 到单独的工作表中。


截至目前,我正在手动过滤数据并附加到每张纸上。在 python 中做 soo 有什么简单更好的方法吗?


所需输出

http://img4.mukewang.com/634e5cfc0001090e06570435.jpg

波斯汪
浏览 158回答 2
2回答

拉风的咖菲猫

鉴于您的数据框data:遍历每个唯一 ID 并对这些值的数据帧进行切片,然后保存到文件中。import pandas as pdwith pd.ExcelWriter('data.xlsx') as writer:    for i, value in enumerate(data.ID.unique(), start=1):        data[data.ID == value].to_excel(writer, index=False, sheet_name=f'Sheet{i}')我认为您最好将每张工作表命名为 ID 值而不是Sheet1等。例如sheet_name=f'{value}'这将允许您辨别每个 ID 在哪张纸上。pandas.DataFrame.to_excelimport pandas as pdwith pd.ExcelWriter('data.xlsx') as writer:    for value in data.ID.unique():        data[data.ID == value].to_excel(writer, index=False, sheet_name=f'{value}')

慕哥9229398

您需要在每张工作表中分隔所需文件的各个部分,并使用 with 语句运行 ExcelWriter 方法output_name = ' 'with pd.ExcelWriter(output_name) as writer:    data.iloc[0:4].to_excel(writer, sheet_name='my_sheet1')    data.iloc[4:8].to_excel(writer, sheet_name='my_sheet2')切片 read_excel 方法的输出的语法可能不正确,但 to_excel 是 DataFrame 的一种方法,只要您获得所需的对象数据部分,这应该可以工作。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python