So filterst du DataFrames mit Pandas isin()
Mit der Python-Pandas-Funktion DataFrame.isin() prüfst du rasch und präzise, ob bestimmte Werte in deinem DataFrame enthalten sind. Das Tool ist besonders praktisch, wenn du mehrere Werte gleichzeitig abgleichen möchtest.
Die Syntax der Pandas-isin()-Funktion
Da Pandas isin() lediglich einen Parameter benötigt, ist der Aufbau der Funktion sehr übersichtlich:
DataFrame.isin(values)pythonHinter dem Parameter values kann eine Python-Liste, ein Dictionary oder ein weiterer DataFrame stehen. Er definiert die Werte, die im Basis-DataFrame gesucht werden.
Arbeitest du nicht mit DataFrames, sondern mit Series, steht dir mit Series.isin() eine identische Funktion zur Verfügung.
Anwendung der isin()-Funktion
Die Einsatzbereiche von isin() sind vielseitig: Du kannst damit nicht nur Daten auf ihre Existenz prüfen, sondern deinen DataFrame auch effizient filtern.
Werte in einer Spalte auf Vorhandensein prüfen
Schauen wir uns als Beispiel einen DataFrame mit Personendaten und deren Wohnorten an.
import pandas as pd
# Beispiel-DataFrame erstellen
data = {
'Name': ['Alice', 'Bob', 'Charlie', 'David'],
'Stadt': ['New York', 'Los Angeles', 'Chicago', 'Houston']
}
df = pd.DataFrame(data)
print(df)pythonSo sieht der DataFrame aus:
Name Stadt
0 Alice New York
1 Bob Los Angeles
2 Charlie Chicago
3 David HoustonNun kontrollieren wir mit Pandas isin(), ob spezifische Städte in der Liste vorkommen. Dazu erstellen wir eine Liste der gesuchten Städte und wenden die Funktion auf die Spalte „Stadt“ an:
# Städte, die überprüft werden sollen
cities_to_check = ['Chicago', 'Houston', 'Miami']
# Anwendung der isin()-Methode
result = df['Stadt'].isin(cities_to_check)
print(result)pythonDu erhältst eine Serie von booleschen Werten (True/False), die zeigt, ob die Stadt in der Liste cities_to_check vorkommt:
0 False
1 False
2 True
3 True
Name: Stadt, dtype: boolDataFrame mit isin() filtern
Nutze Pandas isin() auch, um deinen DataFrame zu sortieren. So behältst du nur jene Zeilen, in denen Städte aus cities_to_check gelistet sind.
# DataFrame filtern basierend auf isin()
filtered_df = df[df['Stadt'].isin(cities_to_check)]
print(filtered_df)pythonDas Resultat ist ein DataFrame, der ausschließlich die Treffer aus deiner Vergleichsliste cities_to_check anzeigt:
Name Stadt
2 Charlie Chicago
3 David HoustonMehrere Spalten gleichzeitig abfragen
Für komplexere Abfragen lässt sich Pandas isin() mit Dictionaries kombinieren. Im nächsten Beispiel siehst du, wie du mehrere Spalten parallel prüfst. Dazu erweitern wir den ursprünglichen DataFrame und nutzen isin():
# Beispiel-DataFrame erstellen
data = {
'Name': ['Alice', 'Bob', 'Charlie', 'David'],
'Stadt': ['New York', 'Los Angeles', 'Chicago', 'Houston'],
'Alter': [25, 30, 35, 40]
}
df = pd.DataFrame(data)
# Dictionary mit Werten, die überprüft werden sollen
values_to_check = {
'Stadt': ['Chicago', 'Houston'],
'Alter': [30, 40]
}
# Anwendung von isin() mit einem Dictionary
result = df.isin(values_to_check)
print(result)pythonIn diesem Fall liefert isin() einen DataFrame mit booleschen Werten zurück, die bestätigen, ob die Kriterien in den jeweiligen Spalten zutreffen:
Name Stadt Alter
0 False False False
1 False False True
2 False True False
3 False True True