[英]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.