Ich habe eine Reihe von 10 Pandas Datenrahmen mit jeweils 100 Zeilen und 6 Spalten. Ich versuche, openpyxl zu verwenden, um die Daten in xlsx zu schreiben. Jeder Datenrahmen sollte in einem separaten Arbeitsblatt der Arbeitsmappe enthalten sein. Die Blätter werden erstellt, aber alle Ergebnisse werden nur auf dem ersten Blatt eingegeben (also bekomme ich 10 Blatt, 9 leer und eins mit 1000 Zeilen - wenn ich 10 Blätter mit je 100 Reihen haben sollte). Wie kann ich das beheben? HierOPENPYXL bevölkern neue Arbeitsblätter
ist der Code für die ersten 2 Blätter:
from openpyxl import Workbook
# Create the hospital_ranking workbook
hospital_ranking = Workbook()
dest_filename1 = "hospital_ranking.xlsx"
ws1 = hospital_ranking.active
ws1.title = "Nationwide"
from openpyxl.utils.dataframe import dataframe_to_rows
# Write the nationwide query to ws1
for r in dataframe_to_rows(national_results, index = False, header = True):
ws1.append(r)
for cell in ws1['A'] + ws1[1]:
cell.style = 'Pandas'
# Create the worksheet for each focus state
# CA
ws2 = hospital_ranking.create_sheet(title = 'California')
ws2 = hospital_ranking.active
# Write the CA query to ws2
for r in dataframe_to_rows(ca_results, index = False, header = True):
ws2.append(r)
for cell in ws2['A'] + ws2[1]:
cell.style = 'Pandas'
hospital_ranking.save(filename = os.path.join("staging/") + dest_filename1)
'code' WS2 = hospital_ranking.create_sheet (title = 'California') WS2 = hospital_ranking.get_sheet_by_name ('California') WS2 = hospital_ranking.active 'Code' produziert noch das gleiche Ergebnis – zsad512
@ zsad512 - - einfach entfernen 'ws2 = hospital_ranking.active' es zeigt auf das aktive Blatt (die erste) – PRMoureu