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 !!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Zu erstellen das Arbeitsblatt im Voraus, müssen Sie das Blatt erstellt, um die
sheets
dict:writer.sheets['Validation'] = worksheet
Verwenden Sie Ihre original-code:
Erklärung
Wenn wir uns die pandas Funktion
to_excel
es nutzt die writer ' swrite_cells
Funktion:So suchen die
write_cells
Funktion fürxlsxwriter
:Hier können wir sehen, dass es prüft, ob
sheet_name
imself.sheets
, und es muss Hinzugefügt werden, gibt es auch.writer.sheets['Validation'] = worksheet
, nichtsheet
.user3817518: "Bitte teilen auch wenn es einen anderen Weg gibt, um viele dataframes in excel mit Hilfe der eingebauten df.to_excel Funktionalität !!"
Hier ist mein Versuch:
Einfache Möglichkeit, um zusammen eine Menge von dataframes auf nur einem Blatt oder auf mehreren Registerkarten. Lassen Sie mich wissen, wenn das funktioniert!
-- Um zu testen, führen Sie einfach die Probe dataframes und der zweite und Dritte Teil des Codes.
Probe dataframes
Mehrere dataframes in eine xlsx sheet
Mehrere dataframes über separate tabs/Folien
Ich würde eher geneigt sein, zu verketten der dataframes ersten und dann wiederum, dass das dataframe in ein excel-format. Zwei dataframes zusammen side-by-side (im Gegensatz zu einer über dem anderen) tun Sie dies: