如何将数据框导出到多张Excel文件

2024-09-29 01:26:37 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我有一个8000行x7列的数据帧

数据概览

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

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

到目前为止,我正在手动筛选数据并将其附加到每个工作表中。在用python进行soo时,有没有更简单更好的方法

所需输出enter image description hereenter image description here


Tags: 数据inidreaddataexceltmppd
2条回答

给定您的数据帧data

  • 迭代每个唯一ID,并为这些值分割数据帧,然后保存到文件中
import pandas as pd

with 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所在的工作表
    • ^{}
import pandas as pd

with 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}')

您需要在每个工作表中分隔文件的各个部分,并使用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方法,只要您获得了对象数据的所需部分,这应该可以工作

相关问题 更多 >