Pandas: verwendung der isin()-methode mit der query()-methode
Häufig möchten Sie möglicherweise die Funktion isin() in der Methode query() in Pandas verwenden, um Zeilen in einem DataFrame zu filtern, in denen eine Spalte einen Wert in einer Liste enthält.
Sie können dazu die folgende Syntax verwenden:
df. query (' team in ["A", "B", "D"] ')
Diese spezielle Abfrage filtert Zeilen aus einem Pandas-DataFrame, bei dem die Teamspalte A, B oder D entspricht.
Hinweis : Wir müssen in anstelle von isin verwenden, wenn wir die Methode pandas query() verwenden.
Das folgende Beispiel zeigt, wie diese Syntax in der Praxis verwendet wird.
Beispiel: Verwenden Sie die Methode query(), um Werte in der Liste zu filtern
Angenommen, wir haben den folgenden Pandas-DataFrame, der Informationen über verschiedene Basketballspieler enthält:
import pandas as pd #createDataFrame df = pd. DataFrame ({' team ': ['A', 'A', 'B', 'B', 'C', 'C', 'D', 'E'], ' points ': [18, 22, 19, 14, 14, 11, 20, 28], ' assists ': [5, 7, 7, 9, 12, 9, 9, 4], ' rebounds ': [11, 8, 10, 6, 6, 5, 9, 12]}) #view DataFrame print (df) team points assists rebounds 0 A 18 5 11 1 to 22 7 8 2 B 19 7 10 3 B 14 9 6 4 C 14 12 6 5 C 11 9 5 6 D 20 9 9 7 E 28 4 12
Nehmen wir nun an, wir möchten Zeilen finden, in denen der Wert in der Teamspalte gleich A, B oder D ist.
Wir können dazu die folgende Syntax verwenden:
#query for rows where team is in list of specific teams df. query (' team in ["A", "B", "D"] ') team points assists rebounds 0 A 18 5 11 1 to 22 7 8 2 B 19 7 10 3 B 14 9 6 6 D 20 9 9
Beachten Sie, dass die Funktion query() alle Zeilen zurückgibt, in denen der Wert in der Teamspalte gleich A, B oder D ist.
Beachten Sie auch, dass wir eine Liste von Teamnamen in einer Variablen speichern und dann in der Funktion query() mit dem Operator @ auf die Variable verweisen können:
#create variable to hold specific team names team_names = [" A ", " B ", " D "] #query for rows where team is equal to a team name in team_names variable df. query (' team in @team_names ') team points assists rebounds 0 A 18 5 11 1 to 22 7 8 2 B 19 7 10 3 B 14 9 6 6 D 20 9 92
Die Abfrage gibt alle Zeilen im DataFrame zurück, in denen team einem der in der Variablen team_names gespeicherten Teamnamen entspricht.
Beachten Sie, dass die Ergebnisse dieser Abfrage mit denen des vorherigen Beispiels übereinstimmen.
Hinweis : Die vollständige Dokumentation der Funktion pandas query() finden Sie hier .
Zusätzliche Ressourcen
In den folgenden Tutorials wird erläutert, wie andere häufige Aufgaben in Pandas ausgeführt werden:
Pandas: So filtern Sie Zeilen basierend auf der Zeichenfolgenlänge
Pandas: So löschen Sie Zeilen basierend auf der Bedingung
Pandas: So verwenden Sie den „NO IN“-Filter