Pandas: so verwenden sie isin für mehrere spalten


Sie können die folgenden Methoden mit der Pandas-Funktion isin() verwenden, um basierend auf mehreren Spalten in einem Pandas-DataFrame zu filtern:

Methode 1: Filtern, wenn mehrere Spalten bestimmten Werten entsprechen

 df = df[df[[' team ', ' position ']]. isin ([' A ',' Guard ']). all (axis= 1 )]

In diesem speziellen Beispiel wird der DataFrame nach Zeilen gefiltert, in denen die Teamspalte „A“ und die Positionsspalte „Guard“ entspricht.

Methode 2: Filtern Sie, wobei mindestens eine Spalte einem bestimmten Wert entspricht

 df = df[df[[' team ', ' position ']]. isin ([' A ',' Guard ']). any (axis= 1 )]

In diesem speziellen Beispiel wird der DataFrame nach Zeilen gefiltert, in denen die Teamspalte „A“ oder die Positionsspalte „Guard“ entspricht.

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 ': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'],
                   ' position ': ['Guard', 'Guard', 'Forward', 'Forward',
                                'Guard', 'Guard', 'Forward', 'Forward'],
                   ' points ': [11, 18, 10, 22, 26, 35, 19, 12]})
                   
#view DataFrame
print (df)

  team position points
0 A Guard 11
1 A Guard 18
2 A Forward 10
3 A Forward 22
4 B Guard 26
5 B Guard 35
6 B Forward 19
7 B Forward 12

Beispiel 1: Filtern, bei dem mehrere Spalten bestimmten Werten entsprechen

Wir können die folgende Syntax verwenden, um den DataFrame so zu filtern, dass er nur Zeilen enthält, in denen die Teamspalte „A“ und die Positionsspalte „Guard“ entspricht.

 #filter rows where team column is 'A' and position column is 'Guard'
df = df[df[[' team ', ' position ']]. isin ([' A ',' Guard ']). all (axis= 1 )]

#view filtered DataFrame
print (df)

  team position points
0 A Guard 11
1 A Guard 18

Beachten Sie, dass nur Zeilen im gefilterten DataFrame verbleiben, in denen die Teamspalte „A“ und die Positionsspalte „Guard“ entspricht.

Beispiel 2: Filtern, bei dem mindestens eine Spalte einem bestimmten Wert entspricht

Wir können die folgende Syntax verwenden, um den DataFrame so zu filtern, dass er nur Zeilen enthält, in denen die Teamspalte „A“ oder die Positionsspalte „Guard“ entspricht.

 #filter rows where team column is 'A' or position column is 'Guard'
df = df[df[[' team ', ' position ']]. isin ([' A ',' Guard ']). any (axis= 1 )]

#view filtered DataFrame
print (df)

  team position points
0 A Guard 11
1 A Guard 18
2 A Forward 10
3 A Forward 22
4 B Guard 26
5 B Guard 35

Beachten Sie, dass nur Zeilen im gefilterten DataFrame verbleiben, in denen die Teamspalte „A“ oder die Positionsspalte „Guard“ entspricht.

Hinweis : Die vollständige Dokumentation für die Pandas-Funktion isin() finden Sie hier .

Zusätzliche Ressourcen

In den folgenden Tutorials wird erläutert, wie Sie andere häufige Aufgaben in Pandas ausführen:

Pandas: So fügen Sie einen Filter zur Pivot-Tabelle hinzu
Pandas: So filtern Sie „Enthält nicht“
Pandas: So filtern Sie Zeilen, die eine bestimmte Zeichenfolge enthalten

Einen Kommentar hinzufügen

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