Putting viele python pandas dataframes zu einem excel-Arbeitsblatt

Ist es ganz einfach hinzufügen viele pandas dataframes in excel-arbeiten, buchen Sie, solange es verschiedene Arbeitsblätter. Aber, es ist etwas schwierig zu bekommen, viele dataframes in einem Arbeitsblatt, wenn Sie verwenden möchten pandas gebaut-in df.to_excel Funktionalität.

# Creating Excel Writer Object from Pandas  
writer = pd.ExcelWriter('test.xlsx',engine='xlsxwriter')   
workbook=writer.book
worksheet=workbook.add_worksheet('Validation') 
df.to_excel(writer,sheet_name='Validation',startrow=0 , startcol=0)   
another_df.to_excel(writer,sheet_name='Validation',startrow=20, startcol=0) 

Der obige code funktioniert nicht. Erhalten Sie die Fehlermeldung von

 Sheetname 'Validation', with case ignored, is already in use.

Nun, ich habe experimentiert genug, dass ich einen Weg gefunden, damit es funktioniert.

writer = pd.ExcelWriter('test.xlsx',engine='xlsxwriter')   # Creating Excel Writer Object from Pandas  
workbook=writer.book
df.to_excel(writer,sheet_name='Validation',startrow=0 , startcol=0)   
another_df.to_excel(writer,sheet_name='Validation',startrow=20, startcol=0) 

Dies funktionieren wird. So, mein Zweck der Entsendung diese Frage auf stackoverflow ist eine doppelte. Erstens, ich hoffe, dies hilft jemand, wenn er/Sie versucht, setzen viele dataframes in einem einzelnen Arbeitsblatt in excel.

Zweitens, Kann mir jemand helfen zu verstehen, den Unterschied zwischen diesen beiden code-Blöcke? Es scheint mir, dass Sie sind ziemlich die gleichen, bis der erste Codeblock erstellt Arbeitsblatt namens "Validierung" im Voraus, während die zweite nicht. Ich bekomme das Teil.

Was ich nicht verstehe, ist, warum sollte es anders sein ? Auch wenn ich nicht erstellen, das Arbeitsblatt im Voraus, diese Zeile, die Zeile rechts, bevor der Letzte,

 df.to_excel(writer,sheet_name='Validation',startrow=0 , startcol=0)  

wird, erstellen Sie ein Arbeitsblatt sowieso. Folglich, von der Zeit erreichten wir die Letzte Zeile des Codes das Arbeitsblatt "Validierung" ist bereits erstellt, als auch in der zweiten code-block. So, meine Frage im Grunde, warum sollte der zweite code-block, der Arbeit, während der erste nicht?

Bitte auch teilen, wenn es ist ein weiterer Weg, um viele dataframes in excel mit Hilfe der eingebauten df.to_excel Funktionalität !!

InformationsquelleAutor nyan314sn | 2015-10-05
Schreibe einen Kommentar