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

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert