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 gleich­zei­tig ab­glei­chen möchtest.

Die Syntax der Pandas-isin()-Funktion

Da Pandas isin() lediglich einen Parameter benötigt, ist der Aufbau der Funktion sehr über­sicht­lich:

DataFrame.isin(values)
python

Hinter dem Parameter values kann eine Python-Liste, ein Dic­tion­a­ry oder ein weiterer DataFrame stehen. Er definiert die Werte, die im Basis-DataFrame gesucht werden.

Tipp

Arbeitest du nicht mit Da­ta­Frames, sondern mit Series, steht dir mit Series.isin() eine iden­ti­sche Funktion zur Verfügung.

Anwendung der isin()-Funktion

Die Ein­satz­be­rei­che von isin() sind viel­sei­tig: Du kannst damit nicht nur Daten auf ihre Existenz prüfen, sondern deinen DataFrame auch effizient filtern.

Werte in einer Spalte auf Vor­han­den­sein prüfen

Schauen wir uns als Beispiel einen DataFrame mit Per­so­nen­da­ten 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)
python

So sieht der DataFrame aus:

Name      Stadt
0    Alice     New York
1    Bob  Los Angeles
2  Charlie    Chicago
3    David    Houston

Nun kon­trol­lie­ren wir mit Pandas isin(), ob spe­zi­fi­sche 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)
python

Du erhältst eine Serie von boole­schen 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: bool

DataFrame 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)
python

Das Resultat ist ein DataFrame, der aus­schließ­lich die Treffer aus deiner Ver­gleichs­lis­te cities_to_check anzeigt:

Name    Stadt
2  Charlie  Chicago
3    David  Houston

Mehrere Spalten gleich­zei­tig abfragen

Für kom­ple­xe­re Abfragen lässt sich Pandas isin() mit Dic­tio­n­a­ries kom­bi­nie­ren. Im nächsten Beispiel siehst du, wie du mehrere Spalten parallel prüfst. Dazu erweitern wir den ur­sprüng­li­chen 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)
python

In diesem Fall liefert isin() einen DataFrame mit boole­schen Werten zurück, die be­stä­ti­gen, ob die Kriterien in den je­wei­li­gen Spalten zutreffen:

Name  Stadt  Alter
0  False  False  False
1  False  False   True
2  False   True  False
3  False   True   True
Zum Hauptmenü