Pandas isin() zum Durchsuchen von DataFrames

Die Python-Pandas-Funktion DataFrame.isin() dient dazu, schnell und effizient zu überprüfen, ob bestimmte Werte in einem DataFrame vorhanden sind. Besonders nützlich ist die Funktion, wenn man mehrere Werte gleichzeitig prüfen möchte.

Webhosting
Top-Hosting für Ihre Website
  • Flexibel: Hosting, das jedem Website-Traffic standhält
  • Verlässlich: Inklusive 24/7-Support und persönlicher Beratung
  • Sicher: Kostenloses SSL-Zertifikat, DDoS-Schutz und Backups

Die Syntax der Pandas-isin()-Funktion

Pandas isin() nimmt nur einen Parameter entgegen. Daher ist die grundlegende Syntax der Funktion sehr einfach und sieht wie folgt aus:

DataFrame.isin(values)
python

Der Parameter values kann eine Python-Liste, ein Dictionary oder ein anderer DataFrame sein und beinhaltet die Werte, nach denen im ursprünglichen DataFrame gesucht werden soll.

Tipp

Wenn Sie nicht mit Pandas DataFrames, sondern mit Series arbeiten, gibt es mit Series.isin() eine vollständig äquivalente Funktion.

Anwendung der isin()-Funktion

Die Anwendungsmöglichkeiten von isin() sind vielfältig: Sie können mithilfe der Funktion nicht nur das Vorhandensein von Werten überprüfen, sondern auch Ihren DataFrame filtern.

Überprüfung auf Vorhandensein von Werten in einer Spalte

Im Folgenden wird ein DataFrame mit Informationen über verschiedene Personen und deren Wohnorte betrachtet.

import pandas as pd
data = {
    'Name': ['Alice', 'Bob', 'Charlie', 'David'],
    'Stadt': ['New York', 'Los Angeles', 'Chicago', 'Houston']
}
df = pd.DataFrame(data)
print(df)
python

Der DataFrame sieht folgendermaßen aus:

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

Es soll nun mit Pandas isin() überprüft werden, ob bestimmte Städte in der entsprechenden Spalte vorhanden sind. Hierfür wird eine Liste mit Städten erstellt, die überprüft werden sollen, und anschließend die Funktion auf der DataFrame-Spalte namens „Stadt“ ausgeführt:

# 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

Das Ergebnis ist eine Serie von booleschen Werten, die angibt, ob die jeweilige Stadt in der Liste cities_to_check vorhanden ist:

0    False
1    False
2     True
3     True
Name: Stadt, dtype: bool

Filterung von DataFrame basierend auf isin()

Pandas isin() kann auch genutzt werden, um den DataFrame zu filtern und nur die Zeilen zu behalten, in denen die Städte aus cities_to_check enthalten sind.

# DataFrame filtern basierend auf isin()
filtered_df = df[df['Stadt'].isin(cities_to_check)]
print(filtered_df)
python

Das Ergebnis ist ein DataFrame, der nur noch Zeilen mit den Städten enthält, die auch in der Vergleichsliste cities_to_check zugegen sind:

Name    Stadt
2  Charlie  Chicago
3    David  Houston

Überprüfung mehrerer Spalten

Um komplexere Filteroperationen durchzuführen, kann Pandas isin() auch mit Dictionaries verwendet werden. In folgendem Beispiel sehen Sie, wie man mit einem Dictionary arbeitet, um mehrere Spalten eines DataFrames gleichzeitig zu prüfen. Hierfür wird der ursprüngliche DataFrame um eine Spalte erweitert und anschließend isin() genutzt:

# 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

Der Funktionsaufruf von isin() liefert in diesem Fall einen DataFrame mit booleschen Werten, die anzeigen, ob die Bedingungen in den jeweiligen Spalten erfüllt sind:

Name  Stadt  Alter
0  False  False  False
1  False  False   True
2  False   True  False
3  False   True   True
War dieser Artikel hilfreich?
Page top