Nach den Grundlagen in Python und Pandas ist es Zeit, das Gelernte in einem kleinen, praktischen Projekt anzuwenden. In diesem Mini-Projekt analysieren wir eine CSV-Datei mit Kundendaten, bereinigen die Daten, erstellen neue Spalten, filtern nach Bedingungen und speichern die Ergebnisse.
Dieses Projekt ist ein klassischer Data-Science-Workflow, der Daten laden, bereinigen, analysieren und exportieren kombiniert.
1. Vorbereitung: CSV-Datei
Angenommen, wir haben eine CSV-Datei kunden.csv:
Name,Alter,Land,Email
Anna Müller,28,Deutschland,anna@example.com
Ben Schmidt,35,Österreich,ben@web.de
Clara Meier,22,Deutschland,clara@example.com
David Braun,30,Schweiz,david@web.ch
Eva Klein,,Deutschland,eva@example.com
- Beachte: Eva Klein hat fehlendes Alter
2. CSV-Datei laden
import pandas as pd
# CSV laden
df = pd.read_csv("kunden.csv")
# Überblick über Daten
print(df.head())
print(df.info())
.head()→ zeigt erste 5 Zeilen.info()→ zeigt Datentypen und fehlende Werte
3. Datenbereinigung
3.1 Fehlende Werte
# Fehlendes Alter durch Durchschnitt ersetzen
df["Alter"].fillna(df["Alter"].mean(), inplace=True)
.fillna()ersetzt NaN-Werte- Durchschnitt ist ein einfacher Imputationsansatz
3.2 Einheitliche Schreibweise
# Namen bereinigen
df["Name"] = df["Name"].str.strip().str.title()
# Emails in Kleinbuchstaben
df["Email"] = df["Email"].str.lower()
.strip()entfernt Leerzeichen.title()sorgt für einheitliche Groß-/Kleinschreibung
4. Neue Spalten erstellen
4.1 Alterskategorie
df["Altersgruppe"] = ["Jung" if x < 30 else "Erwachsen" for x in df["Alter"]]
- Comprehension mit Bedingung
- Praktisch für Segmentierung von Kunden
4.2 VIP-Status
df["VIP"] = df["Name"].isin(["Anna Müller", "Clara Meier"])
.isin()prüft, ob Name in einer Liste ist- Ergebnis ist boolescher Wert (
True/False)
5. Filter und Analyse
5.1 Kunden aus Deutschland
kunden_deutschland = df[df["Land"] == "Deutschland"]
print(kunden_deutschland)
.loc[]oder direkte Filterung möglich
5.2 Durchschnittsalter berechnen
durchschnitt = df["Alter"].mean()
print(f"Durchschnittsalter: {durchschnitt:.2f}")
5.3 VIP-Kunden filtern
vip_kunden = df[df["VIP"] == True]
print(vip_kunden)
6. Aggregationen
# Durchschnittsalter je Land
durchschnitt_land = df.groupby("Land")["Alter"].mean()
print(durchschnitt_land)
# Anzahl Kunden je Altersgruppe
anzahl_altersgruppe = df["Altersgruppe"].value_counts()
print(anzahl_altersgruppe)
groupby()→ gruppiert Datenvalue_counts()→ zählt Vorkommen
7. Daten exportieren
7.1 CSV speichern
df.to_csv("kunden_bereinigt.csv", index=False)
7.2 Excel speichern
with pd.ExcelWriter("kunden_bereinigt.xlsx") as writer:
df.to_excel(writer, sheet_name="Kunden", index=False)
df.describe().to_excel(writer, sheet_name="Statistik")
- Mehrere Tabellen in Excel → Bericht und Statistik
8. Visualisierung (optional)
import matplotlib.pyplot as plt
# Balkendiagramm Altersgruppen
anzahl_altersgruppe.plot(kind="bar", title="Kunden nach Altersgruppe")
plt.xlabel("Altersgruppe")
plt.ylabel("Anzahl")
plt.show()
- Visualisierung zeigt schnell Verteilung von Daten
- Matplotlib oder Seaborn sind dafür geeignet
9. Zusammenfassung des Workflows
- Daten laden →
read_csv - Überblick verschaffen →
head(),info() - Daten bereinigen → fehlende Werte, Strings formatieren
- Neue Spalten erstellen → Altersgruppe, VIP
- Filtern und aggregieren →
groupby(),value_counts() - Ergebnisse speichern → CSV und Excel
- Optional visualisieren → Matplotlib
- Dieser Workflow bildet die Basis für komplexere Data-Science-Projekte
Schreibe einen Kommentar