Hallo, Freunde der Codewelt! Ich hoffe, euch geht’s gut, und wenn nicht, hoffe ich, dass diese Vorlesung euren Tag ein kleines bisschen besser macht.
Heute lernen wir, wie man Daten mit der süßen und freundlichen Bibliothek pandas
in eine Excel-Datei schreibt. Ja,
genau die, von der wir alle gehört haben. Diese Vorlesung ist ein wichtiger Schritt auf dem Weg zur Automatisierung von allem, von
Berichten bis hin zur privaten Buchhaltung. Wenn du jemals davon geträumt hast, ein Guru der Tabellenkalkulationsautomatisierung zu werden (wer nicht?),
dann bist du hier genau richtig.
1. Grundlagen der Datenspeicherung in Excel mit pandas
Stell dir vor, wir haben ein DataFrame
, gefüllt mit Zahlen und Text, und wir möchten dieses Meisterwerk in eine
Excel-Datei umwandeln. Wie machen wir das mit pandas? Ganz einfach! pandas
hat eine wundervolle Methode namens
to_excel
, die all unsere Probleme beim Speichern von Daten löst.
Wie funktioniert das Ganze?
Um ein DataFrame
in eine Excel-Datei zu schreiben, verwenden wir die Methode to_excel
. Diese Funktion
erlaubt uns, den Dateinamen für die zu speichernden Daten sowie z. B. den Namen des Sheets anzugeben, auf dem wir die Daten speichern möchten.
Werfen wir einen Blick auf ein kleines Beispiel:
import pandas as pd
# Wir erstellen ein kleines DataFrame
data = {
'Früchte': ['Apfel', 'Banane', 'Kirsche'],
'Menge': [10, 5, 2]
}
df = pd.DataFrame(data)
# DataFrame in eine Excel-Datei schreiben
df.to_excel('fruits.xlsx', sheet_name='Lieblingsfrüchte', index=False)
print("Die Daten wurden erfolgreich in die Datei 'fruits.xlsx' geschrieben")
Ein kleines bisschen mehr zu den Parametern
- Dateiname: Wir haben 'fruits.xlsx' angegeben. Vergesst nicht, die Endung '.xlsx' hinzuzufügen, sonst erstellt ihr eine Datei, die Excel nicht versteht.
- sheet_name: Hier haben wir 'Lieblingsfrüchte' angegeben. Dies ist der Name des Sheets, auf das die Daten geschrieben werden.
- index: Standardmäßig speichert pandas die Indizes des
DataFrame
als erste Spalte. Indem wirindex=False
angeben, haben wir das vermieden.
2. Arbeiten mit mehreren Sheets
Wie wäre es, Daten in mehrere Sheets einer einzigen Excel-Datei zu schreiben? Denn je mehr Daten, desto mehr Spaß! Unten ist ein Beispiel, wie das geht.
Wir nutzen pandas.ExcelWriter
, was uns die Möglichkeit gibt, flexibler mit der Datei zu arbeiten.
# Erstellung von zwei DataFrames
data1 = {'Früchte': ['Apfel', 'Orange'], 'Menge': [5, 7]}
data2 = {'Gemüse': ['Karotte', 'Kohl'], 'Menge': [3, 4]}
df1 = pd.DataFrame(data1)
df2 = pd.DataFrame(data2)
# Erstellung einer Excel-Datei mit mehreren Sheets
with pd.ExcelWriter('produce.xlsx') as writer:
df1.to_excel(writer, sheet_name='Früchte', index=False)
df2.to_excel(writer, sheet_name='Gemüse', index=False)
print("Die Daten wurden erfolgreich in die Datei 'produce.xlsx' auf verschiedene Sheets geschrieben.")
Warum ist das nützlich?
Das Arbeiten mit mehreren Sheets ist nützlich, wenn die Daten logisch nach Kategorien getrennt sind, wie z. B. Berichte aus verschiedenen Monaten, verschiedene Produkttypen usw. Excel wird zu einem universellen Container, der es ermöglicht, alle Daten in einer Datei, aber auf verschiedene Sheets verteilt, zu speichern.
3. Praktische Übung
Jetzt ist es Zeit für eine kleine Herausforderung. Du wirst eine neue Excel-Datei erstellen, die Daten über den Verkauf von Büchern in einem Laden enthält. Es wird zwei Sheets geben: eines für die Buchverkäufe im Januar und eines für den Februar. Hier sind einige Daten, die dir den Start erleichtern sollen:
- Januar: Buch "Python für alle" (Verkäufe: 50), "Geheimnisse von JavaScript" (Verkäufe: 30).
- Februar: Buch "Python für alle" (Verkäufe: 70), "Geheimnisse von JavaScript" (Verkäufe: 40).
Versuch, diese Aufgabe selbstständig zu lösen. Danach schau dir das Beispiel unten an, falls du Hilfe brauchst.
# Beispielhafte Lösung der Aufgabe
# Daten für Januar
january_data = {'Buch': ['Python für alle', 'Geheimnisse von JavaScript'], 'Verkäufe': [50, 30]}
january_df = pd.DataFrame(january_data)
# Daten für Februar
february_data = {'Buch': ['Python für alle', 'Geheimnisse von JavaScript'], 'Verkäufe': [70, 40]}
february_df = pd.DataFrame(february_data)
# Erstellung einer Excel-Datei mit Daten für zwei Monate
with pd.ExcelWriter('book_sales.xlsx') as writer:
january_df.to_excel(writer, sheet_name='Januar', index=False)
february_df.to_excel(writer, sheet_name='Februar', index=False)
print("Die Daten wurden erfolgreich in die Datei 'book_sales.xlsx' geschrieben.")
Öffne die Datei book_sales.xlsx
und bewundere die erstellten Sheets!
4. Diskussion der Lösungen und Optimierung
Wie ihr bemerkt habt, ist das Schreiben von Daten in Excel mit pandas
recht einfach. Es gibt jedoch
einige Dinge, auf die ihr achten solltet:
- Optimierung der Speichernutzung: Wenn ihr riesige
DataFrame
habt, denkt darüber nach, die Daten in Teile zu unterteilen und sie nacheinander zu schreiben. - Formatierung: Ihr könnt Formatierungen hinzufügen, z. B. Stile für Tabellenüberschriften. Dafür benötigt ihr
die zusätzliche Bibliothek
openpyxl
und deren Methoden. - Mehrfache Schreibvorgänge: Wenn ihr häufig Daten in dieselbe Datei schreibt, überlegt,
mode='a'
inExcelWriter
zu verwenden, um neue Daten zu bestehenden hinzuzufügen.
Ein paar Beispiele zur Verbesserung eurer zukünftigen Arbeit
In der Zukunft, wenn ihr Könige (mmm… oder Königinnen?) der Automatisierung seid, müsst ihr lernen, Probleme zu finden und
zu lösen. Zum Beispiel könnte eure Firma beschließen, tägliche Berichte für den Monat zu sammeln. Ihr könnt
pandas
und ExcelWriter
nutzen, um diesen Prozess zu automatisieren. Vielleicht solltet ihr
Feiertage und Wochenenden automatisch beachten, damit an diesen Tagen keine Berichte erstellt werden.
Also scheut euch nicht, mit Lösungen zu experimentieren und eure Arbeit zu optimieren! Python mit pandas
ist
genau das, was euch dabei hilft.
GO TO FULL VERSION