Hoe u het “not in”-filter in panda’s gebruikt (met voorbeelden)


U kunt de volgende syntaxis gebruiken om een ‚NOT IN‘-filter uit te voeren in een Panda DataFrame:

 df[ ~ df[' col_name ']. isin (values_list)]

Houd er rekening mee dat de waarden in Values_list numerieke waarden of tekenwaarden kunnen zijn.

De volgende voorbeelden laten zien hoe u deze syntaxis in de praktijk kunt gebruiken.

Voorbeeld 1: Voer een “NON IN”-filter uit met een kolom

De volgende code laat zien hoe u een Panda DataFrame filtert op rijen waarin een teamnaam niet in een lijst met namen voorkomt:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'B', 'B', 'B', 'B', 'C', 'C'],
                   ' points ': [25, 12, 15, 14, 19, 23, 25, 29],
                   ' assists ': [5, 7, 7, 9, 12, 9, 9, 4],
                   ' rebounds ': [11, 8, 10, 6, 6, 5, 9, 12]})

#define list of teams we don't want
values_list = [' A ', ' B ']

#filter for rows where team name is not in list
df[ ~ df[' team ']. isin (values_list)]

        team points assists rebounds
6 C 25 9 9
7 C 29 4 12

En de volgende code laat zien hoe u een Panda’s DataFrame filtert op rijen waarin de kolom „punten“ bepaalde waarden niet bevat:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'B', 'B', 'B', 'B', 'C', 'C'],
                   ' points ': [25, 12, 15, 14, 19, 23, 25, 29],
                   ' assists ': [5, 7, 7, 9, 12, 9, 9, 4],
                   ' rebounds ': [11, 8, 10, 6, 6, 5, 9, 12]})

#define list of values we don't want
values_list = [12, 15, 25]

#filter for rows where team name is not in list
df[ ~ df[' team ']. isin (values_list)]

	team points assists rebounds
3 B 14 9 6
4 B 19 12 6
5 B 23 9 5
7 C 29 4 12

Voorbeeld 2: Voer een “NON IN”-filter uit met meerdere kolommen

De volgende code laat zien hoe u een Panda’s DataFrame filtert op rijen waarin bepaalde teamnamen niet in een van de verschillende kolommen staan:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' star_team ': ['A', 'A', 'B', 'B', 'B', 'B', 'C', 'C'],
                   ' backup_team ': ['B', 'B', 'C', 'C', 'D', 'D', 'D', 'E'],
                   ' points ': [25, 12, 15, 14, 19, 23, 25, 29],
                   ' assists ': [5, 7, 7, 9, 12, 9, 9, 4],
                   ' rebounds ': [11, 8, 10, 6, 6, 5, 9, 12]})

#define list of teams we don't want
values_list = [' C ', ' E ']

#filter for rows where team name is not in one of several columns
df[ ~ df[[' star_team ', ' backup_team ']]. isin (values_list). any (axis= 1 )] 

        star_team backup_team points assists rebounds
0 A B 25 5 11
1 A B 12 7 8
4 B D 19 12 6
5 B D 23 9 5

Houd er rekening mee dat we elke rij hebben gefilterd waar ‚C‘- of ‚E‘-teams in de kolom ’star_team‘ of in de kolom ‚backup_team‘ voorkomen.

Aanvullende bronnen

In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende filterbewerkingen in panda’s kunt uitvoeren:

Hoe gebruik je “Is Not Null” in Panda’s?
Hoe u een Pandas DataFrame filtert op kolomwaarden
Hoe Pandas DataFrame-rijen op datum kunnen worden gefilterd
Hoe u een Pandas DataFrame op meerdere voorwaarden kunt filteren

Einen Kommentar hinzufügen

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