簡體   English   中英

如何將Python數據框寫入多個Excel文件的多個表

[英]How to write Python dataframe to multiple sheets of multiple Excel files

我有一個Python數據框,我想寫入兩個Excel文件,每個文件有三張紙。 一共有五列,前兩列在所有三張紙上,后三列在三張紙上旋轉。 Excel文件基於第一列的值。 因此,每個文件將具有相同的三張紙(當然,它們具有不同的值)。

我有將不同的列放在一個Excel文件的不同工作表中的代碼。 而且我有基於列值創建多個Excel文件的代碼。 我想不通結合兩種技術來創建多個Excel文件的方法,每個Excel文件都有多個工作表。

示例數據框:

df = pd.DataFrame({'School': ['School1', 'School1', 'School2', 'School2'], 
                   'Sex': ['M', 'M', 'F', 'F'],
                   'Q1' : ['Black', 'Black', 'White', 'White'],
                   'Q2' : ['Good', 'Good', 'Bad', 'Bad'],
                   'Q3' : ['Up', 'Up', 'Down', 'Down']})

這段代碼將根據School列創建一個不同的Excel文件:

output = df[['School','Sex','Q1']].groupby('School')
output.apply(lambda x: x.to_excel('School' + str(x.name) + '.xlsx'))

此代碼會將不同的列放在一個Excel文件的不同工作表上:

writer = pd.ExcelWriter('school_tabs.xlsx', engine='xlsxwriter')
df[['School','Sex','Q1']].to_excel(writer, sheet_name='Q1')
df[['School','Sex','Q2']].to_excel(writer, sheet_name='Q2')
df[['School','Sex','Q3']].to_excel(writer, sheet_name='Q3')
writer.save()

所需的輸出將是:

Excel文件1

(sheet 1):
School    Sex  Q1
School 1  M    Black
School 1  M    Black

(sheet 2):
School    Sex  Q2
School 1  M    Good
School 1  M    Good

(sheet 3):
School    Sex  Q3
School 1  M    Up
School 1  M    Up

Excel文件2

(sheet 1):
School    Sex  Q1
School 2  F    White
School 2  F    White

(sheet 2):
School    Sex  Q2
School 2  F    Bad
School 2  F    Bad

(sheet 3):
School    Sex  Q3
School 2  F    Down
School 2  F    Down

IIUC,只需遍歷您的groupby對象。 這樣您就可以分別處理每個數據幀。

使用您自己的代碼行:

output = df[['School','Sex','Q1']].groupby('School')

for school, df_ in output:
    writer = pd.ExcelWriter(f'school_{school}_tabs.xlsx', engine='xlsxwriter')
    df_[['School','Sex','Q1']].to_excel(writer, sheet_name='Q1')
    df_[['School','Sex','Q2']].to_excel(writer, sheet_name='Q2')
    df_[['School','Sex','Q3']].to_excel(writer, sheet_name='Q3')
    writer.save()

暫無
暫無

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

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