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-elsein 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
- Comprehensions für Transformationen → kürzer und effizienter als Schleifen
- Bedingungen direkt integrieren →
ifoderif-else - Listen → DataFrame-Spalten → direkte Zuweisung
- Set und Dictionary Comprehension → für Lookup oder eindeutige Werte
- 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.
Schreibe einen Kommentar