Schnelleres schreiben von xlsx-Dateien

mit matplotlib, NumPy, pandas, SciPy, SymPy und weiteren mathematischen Programmbibliotheken.
Antworten
KrisCrow
User
Beiträge: 11
Registriert: Dienstag 10. August 2021, 13:00

Hallo miteinander,

nach diversen Auswertungen von csv-Eingaben schreibe ich diese Ergebnisse in eine xlsx-Datei:

Code: Alles auswählen

with pd.ExcelWriter(file_out) as writer:
    df1.to_excel(writer, sheet_name='A')
    df2.to_excel(writer, sheet_name='B')
    # mehr als 20 Blätter ... 
Dies Dauert aber lange (im Schnitt 10-20 min bei einer 500MB Datei).

Ist es möglich dies zu beschleunigen?
(CPU, RAM, SSD werden fast nicht ausgelastet)

Vielen Dank!
einfachTobi
User
Beiträge: 491
Registriert: Mittwoch 13. November 2019, 08:38

Spontan würde ich sagen nein. Du kannst schauen, ob eine der beiden Engines ‘openpyxl’ ooder ‘xlsxwriter’ schneller ist.
Eine 500 MB Excel-Datei klingt aber auch danach, dass die Mappe als Datenbank missbraucht wird. Vielleicht solltest du die Nutzung von Excel für diesen Anwendungsfall überdenken.
KrisCrow
User
Beiträge: 11
Registriert: Dienstag 10. August 2021, 13:00

einfachTobi hat geschrieben: Dienstag 10. August 2021, 14:10Vielleicht solltest du die Nutzung von Excel für diesen Anwendungsfall überdenken.
Habe ich bzw. wir. Ist schon ein Fortschritt zu >2GB csv-Dateien.

Es wird eine Datei benötigt, die einfach teilbar (Cloud, USB-Stick, ftp, ...) ist, einfach von vielen verschiedenen Programmen einlesbar ist und auch einfach "von hand" lesbar oder bearbeiten bar ist und wo man einfach mittels Excel oder Python schnell was berechnen kann.
Das ist Forschung ... es muss nicht produktiv sein :geek:
Antworten