Teil 23: Listen- & DataFrame-Komprehension

In Python ist die Comprehension-Syntax eine sehr effiziente Möglichkeit, Listen, Dictionaries oder sogar Pandas DataFrames zu erstellen und zu transformieren. Mit Comprehensions lassen sich Schleifen, Bedingungen und Operationen in einer einzigen, lesbaren Zeile ausdrücken. In diesem Teil lernst du, wie man Listen- und DataFrame-Komprehension anwendet, um Daten effizient zu verarbeiten.


1. Listen-Komprehension

Listen-Komprehension ist eine kompakte Methode, um Listen basierend auf bestehenden Listen oder anderen iterierbaren Objekten zu erstellen.

Grundstruktur:

[ Ausdruck für Element in Iterierbarem Objekt ]

Beispiel: Quadratzahlen

zahlen = [1, 2, 3, 4, 5]
quadrate = [x**2 for x in zahlen]
print(quadrate)  # [1, 4, 9, 16, 25]
  • Kürzer und lesbarer als klassische Schleifen

Mit Bedingung

# Nur gerade Zahlen quadrieren
quadrate_gerade = [x**2 for x in zahlen if x % 2 == 0]
print(quadrate_gerade)  # [4, 16]
  • if → Filter für Elemente
  • Praktisch, um Daten selektiv zu transformieren

Verschachtelte Schleifen

# Alle Kombinationen von Zahlen
kombinationen = [(x, y) for x in [1, 2] for y in [3, 4]]
print(kombinationen)  # [(1,3),(1,4),(2,3),(2,4)]
  • Nützlich für Kombinations- oder Kreuzproduktaufgaben

2. Dictionary-Komprehension

Dictionary-Komprehension ermöglicht, Dictionaries aus iterierbaren Objekten zu erstellen:

# Quadratzahlen als Dictionary
dict_quadrate = {x: x**2 for x in range(1, 6)}
print(dict_quadrate)  # {1:1,2:4,3:9,4:16,5:25}
  • Auch mit Bedingungen möglich:
dict_gerade = {x: x**2 for x in range(1, 6) if x % 2 == 0}
print(dict_gerade)  # {2:4,4:16}
  • Praktisch für Mapping-Tabellen oder Lookup-Tabellen

3. Set-Komprehension

Set-Komprehension erstellt Mengen ohne Duplikate:

zahlen = [1, 2, 2, 3, 4, 4]
einzigartige_quadrate = {x**2 for x in zahlen}
print(einzigartige_quadrate)  # {1,4,9,16}
  • Duplikate werden automatisch entfernt
  • Praktisch für einzigartige Werte oder Kategorien

4. DataFrame-Komprehension in Pandas

In Pandas kann man DataFrames oder Spalten effizient erstellen:

import pandas as pd

# DataFrame aus Liste von Dictionaries
df = pd.DataFrame([{"Name": name, "Alter": alter} for name, alter in [("Anna", 28), ("Ben", 35), ("Clara", 22)]])
print(df)

Ergebnis:

    Name  Alter
0   Anna     28
1    Ben     35
2  Clara     22
  • Comprehension erlaubt flexible Erstellung aus beliebigen Datenquellen

Neue Spalten mit Comprehension

# Alter in 5 Jahren
df["Alter_in_5_Jahren"] = [x + 5 for x in df["Alter"]]
print(df)
  • Kürzer als klassische Schleife
  • Ideal für schnelle Transformationen

Mit Bedingungen

# VIP markieren: Alter < 30
df["VIP"] = ["Ja" if x < 30 else "Nein" for x in df["Alter"]]
print(df)
  • if-else in Comprehension
  • Praktisch für Kategorisierung von Daten

5. Praxisbeispiel: Kundenanalyse

kunden = [
    {"Name": "Anna", "Alter": 28},
    {"Name": "Ben", "Alter": 35},
    {"Name": "Clara", "Alter": 22},
    {"Name": "David", "Alter": 30}
]

# DataFrame erstellen
df = pd.DataFrame(kunden)

# Alter verdoppeln
df["Alter_verdoppelt"] = [x*2 for x in df["Alter"]]

# VIP (Alter < 30)
df["VIP"] = ["Ja" if x < 30 else "Nein" for x in df["Alter"]]

print(df)

Ergebnis:

    Name  Alter  Alter_verdoppelt VIP
0   Anna     28               56  Ja
1    Ben     35               70  Nein
2  Clara     22               44  Ja
3  David    30               60  Nein
  • Zeigt erstellen, transformieren und kategorisieren in einer kompakten Form
  • Comprehensions sparen Code und verbessern Lesbarkeit

6. Tipps für Data Science

  1. Comprehensions für Transformationen → kürzer und effizienter als Schleifen
  2. Bedingungen direkt integrierenif oder if-else
  3. Listen → DataFrame-Spalten → direkte Zuweisung
  4. Set und Dictionary Comprehension → für Lookup oder eindeutige Werte
  5. Nicht übermäßig verschachteln → besser lesbar

7. Fazit

Listen- und DataFrame-Comprehensions sind leistungsstarke Werkzeuge in Python und Pandas. Sie ermöglichen:

  • Kompakte Erstellung und Transformation von Daten
  • Bedingte Logik direkt in der Syntax
  • Effiziente Bearbeitung von Listen, Dictionaries und DataFrames

Wer Comprehensions sicher einsetzt, kann Datenanalysen schneller, lesbarer und effizienter gestalten – eine essentielle Fähigkeit für professionelle Data-Science-Arbeit.


Kommentare

Schreibe einen Kommentar

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