簡體   English   中英

如何將 DataFrame 導出到多張 Excel 文件

[英]How to export a DataFrame to multiple sheets of Excel File

假設我有一個 8000 行 x 7 列的 dataframe。

數據概覽

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

dataframe 中有大約 197 個唯一 ID。

我正在嘗試將數據導出到 Excel 並將每個 ID 導出到單獨的工作表中。

截至目前,我正在手動過濾數據並附加到每張紙上。 在 python 中做 soo 有什么簡單更好的方法嗎?

需要 Output 在此處輸入圖像描述 在此處輸入圖像描述

給定您的 dataframe data

  • 遍歷每個唯一 ID 並對 dataframe 進行切片以獲得這些值,然后保存到文件中。
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}'
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 方法的 output 的語法可能不正確,但 to_excel 是 DataFrame 的方法,只要您獲得 ZA8CFDE6331BD59EB2AC96F8911C4B6 數據的所需部分,這個應該可以工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM