Teil 18: Arbeiten mit Pandas DataFrames

Ein DataFrame ist die zentrale Datenstruktur in Pandas und wird für die Analyse und Verarbeitung von tabellarischen Daten verwendet. Man kann es sich wie ein Excel- oder SQL-Table vorstellen: Zeilen entsprechen Datensätzen, Spalten den Attributen. In diesem Teil lernst du, wie man DataFrames erstellt, bearbeitet, filtert und analysiert.


1. DataFrame erstellen

Aus einem Dictionary

import pandas as pd

daten = {
    "Name": ["Anna", "Ben", "Clara", "David"],
    "Alter": [28, 35, 22, 30],
    "Land": ["Deutschland", "Österreich", "Deutschland", "Schweiz"]
}

df = pd.DataFrame(daten)
print(df)

Ausgabe:

    Name  Alter        Land
0   Anna     28  Deutschland
1    Ben     35    Österreich
2  Clara     22  Deutschland
3  David     30      Schweiz
  • Jede Spalte ist eine Pandas Series
  • Der Index wird automatisch erstellt (0, 1, 2, …)

2. Zugriff auf Spalten

# Einzelne Spalte
print(df["Name"])

# Mehrere Spalten
print(df[["Name", "Alter"]])
  • Zugriff auf Spalten liefert eine Series (einfach) oder DataFrame (mehrere Spalten)

3. Zugriff auf Zeilen

Mit loc (Label-basiert)

print(df.loc[1])  # Zeile mit Index 1
print(df.loc[0:2])  # Zeilen 0 bis 2

Mit iloc (Positions-basiert)

print(df.iloc[2])   # Zeile an Position 2
print(df.iloc[0:3]) # Zeilen 0 bis 2
  • loc → arbeitet mit Index-Labels
  • iloc → arbeitet mit numerischen Positionen

4. Filtern von Daten

# Alle Kunden über 30 Jahre
print(df[df["Alter"] > 30])

# Kunden aus Deutschland
print(df[df["Land"] == "Deutschland"])
  • Bedingungen können kombiniert werden:
df[(df["Alter"] > 25) & (df["Land"] == "Deutschland")]

5. Neue Spalten erstellen

# Alter in 5 Jahren
df["Alter_in_5_Jahren"] = df["Alter"] + 5

# VIP-Kunden markieren
df["VIP"] = df["Name"].isin(["Anna", "Clara"])
print(df)
  • Spalten lassen sich einfach hinzufügen oder berechnen

6. Daten bearbeiten

# Werte ändern
df.loc[df["Name"] == "Ben", "Land"] = "Deutschland"

# Fehlende Werte auffüllen
df["Alter"].fillna(df["Alter"].mean(), inplace=True)
  • loc zum gezielten Bearbeiten
  • fillna() für fehlende Werte

7. Daten zusammenfassen

# Grundlegende Statistik
print(df.describe())

# Häufigkeit einer Kategorie
print(df["Land"].value_counts())
  • describe() → Mittelwert, Minimum, Maximum, Quartile
  • value_counts() → Anzahl der Vorkommen

8. Daten sortieren

# Nach Alter aufsteigend
df.sort_values("Alter", inplace=True)

# Nach Name absteigend
df.sort_values("Name", ascending=False)
  • inplace=True → Änderungen direkt im DataFrame speichern

9. Spalten umbenennen

df.rename(columns={"Name": "Vorname", "Land": "Landesname"}, inplace=True)
  • Verbessert Lesbarkeit und Verständlichkeit

10. Daten importieren und exportieren

CSV-Dateien laden

df = pd.read_csv("kunden.csv")

DataFrame speichern

df.to_csv("kunden_neu.csv", index=False)
  • index=False → Index nicht speichern
  • Praktisch für Data-Science-Workflows

11. Praxisbeispiel: Kundenanalyse

# CSV laden
df = pd.read_csv("kunden.csv")

# Durchschnittsalter berechnen
durchschnitt = df["Alter"].mean()
print(f"Durchschnittsalter: {durchschnitt:.2f}")

# VIP-Kunden filtern
vip_kunden = df[df["Name"].isin(["Anna", "Clara"])]
vip_kunden.to_csv("vip_kunden.csv", index=False)
  • Zeigt Daten laden, filtern und speichern
  • Kombiniert analytische Berechnungen und Export

Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert