2017-09-08 531 views
3

我有不同的數據框,並希望使用列表理解或一個方便的函數編寫每個df單獨寫入他們的excel。使用to_excel()寫入DataFrame列表到Excel Excel

就目前我的做法是使用與列表理解:

AList=[a,b,c,d] 

writer=pd.ExcelWriter(r"P:\Data\Test.xlsx") 
[A.to_excel(writer,sheet_name="{0}".format(A)) for A in AList] 

writer.save() 

但是,這是行不通的。

欣賞每個答案。

回答

4

我認爲你需要enumerate從列表中選擇sheetnames,還需要分配輸出到一些變量像_

#sample data 
df = pd.DataFrame({'B':[4,5,4,5,5,4], 
        'C':[7,8,9,4,2,3], 
        'D':[1,3,5,7,1,0], 
        'E':[5,3,6,9,2,4]}) 

#list of dfs 
AList=[df,df*10,df*100,df*1000] 
#list of stheetnames 
names = ['sheet1','sheet2','sheet3','sheet4'] 

writer=pd.ExcelWriter(r"P:\Data\Test.xlsx") 
_ = [A.to_excel(writer,sheet_name="{0}".format(names[i])) for i, A in enumerate(AList)] 
writer.save() 

非列表理解的解決方案是更好地在這裏:

writer=pd.ExcelWriter(r"P:\Data\Test.xlsx") 
for i, A in enumerate(AList): 
    A.to_excel(writer,sheet_name="{0}".format(names[i])) 

writer.save()