Pandas: wie man like in query() verwendet
Sie können die folgenden Methoden verwenden, um LIKE (ähnlich wie SQL) in einer pandas query() -Funktion zu verwenden, um Zeilen zu finden, die ein bestimmtes Muster enthalten:
Methode 1: Suchen Sie nach Zeilen, die ein Muster enthalten
df. query (' my_column.str.contains("pattern1") ')
Methode 2: Suchen Sie nach Zeilen, die eines von mehreren Mustern enthalten
df. query (' my_column.str.contains("pattern1|pattern2") ')
Die folgenden Beispiele zeigen, wie jede Methode in der Praxis mit dem folgenden Pandas DataFrame verwendet wird:
import pandas as pd #createDataFrame df = pd. DataFrame ({' team ': ['Cavs', 'Heat', 'Mavs', 'Mavs', 'Nets', 'Heat', 'Cavs', 'Jazz', 'Jazz', 'Hawks'], ' points ': [3, 3, 4, 5, 4, 7, 8, 7, 12, 14], ' rebounds ': [15, 14, 14, 10, 8, 14, 13, 9, 5, 4]}) #view DataFrame print (df) team points rebounds 0 Cavs 3 15 1 Heat 3 14 2 Mavs 4 14 3 Mavs 5 10 4 Nets 4 8 5 Heat 7 14 6 Cavs 8 13 7 Jazz 7 9 8 Jazz 12 5 9 Hawks 14 4
Beispiel 1: Suchen Sie nach Zeilen, die ein Muster enthalten
Der folgende Code zeigt, wie Sie mit der Funktion query() alle Zeilen im DataFrame finden, die „avs“ in der Teamspalte enthalten:
df. query (' team.str.contains("avs") ') team points rebounds 0 Cavs 3 15 2 Mavs 4 14 3 Mavs 5 10 6 Cavs 8 13
Jede zurückgegebene Zeile enthält irgendwo in der Teamspalte „avs“.
Beachten Sie außerdem, dass bei dieser Syntax die Groß-/Kleinschreibung beachtet wird.
Wenn wir stattdessen „AVS“ verwenden würden, würden wir keine Ergebnisse erhalten, da es in der Teamspalte keine Zeilen mit Großbuchstaben „AVS“ gibt.
Beispiel 2: Suchen Sie nach Zeilen, die eines von mehreren Mustern enthalten
Der folgende Code zeigt, wie Sie mit der Funktion query() alle Zeilen im DataFrame finden, die „avs“ oder „eat“ in der Teamspalte enthalten:
df. query (' team.str.contains("avs|eat") ') team points rebounds 0 Cavs 3 15 1 Heat 3 14 2 Mavs 4 14 3 Mavs 5 10 5 Heat 7 14 6 Cavs 8 13
Jede zurückgegebene Zeile enthält irgendwo in der Teamspalte entweder „avs“ oder „eat“.
Hinweis : Die | Der Operator bedeutet „oder“ in Pandas. Sie können beliebig viele verwenden, um nach noch mehr Kanaldesigns zu suchen.
Zusätzliche Ressourcen
In den folgenden Tutorials wird erläutert, wie Sie andere häufige Aufgaben in Pandas ausführen:
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