Panda's: hoe filter ik 'bevat geen' items?
U kunt de volgende methoden gebruiken om een filter ‚Bevat niet‘ uit te voeren in een Panda DataFrame:
Methode 1: Filter rijen die geen specifieke tekenreeks bevatten
filtered_df = df[df[' my_column ']. str . contains (' some_string ') == False ]
Methode 2: Filter rijen die niet een van de verschillende specifieke tekenreeksen bevatten
filtered_df = df[df[' my_column ']. str . contains (' string1|string2|string3 ') == False ]
De volgende voorbeelden laten zien hoe u elke methode in de praktijk kunt gebruiken met de volgende panda’s DataFrame:
import pandas as pd #createDataFrame df = pd. DataFrame ({' team ': ['Nets', 'Rockets', 'Mavs', 'Spurs', 'Kings', 'Nuggets'], ' points ': [18, 22, 19, 14, 14, 11], ' assists ': [5, 7, 7, 9, 12, 9], ' rebounds ': [11, 8, 10, 6, 6, 5]}) #view DataFrame print (df) team points assists rebounds 0 Nets 18 5 11 1 Rockets 22 7 8 2 Mavs 19 7 10 3 Spurs 14 9 6 4 Kings 14 12 6 5 Nuggets 11 9 5
Voorbeeld 1: Filter rijen die geen specifieke tekenreeks bevatten
De volgende code laat zien hoe u het Panda’s DataFrame filtert op rijen waarvan de teamkolom geen ‚ets‘ in de naam bevat:
#filter for rows that do not contain 'ets' in the 'team' column
filtered_df = df[df[' team ']. str . contains (' ets ') == False ]
#view filtered DataFrame
print (filtered_df)
team points assists rebounds
2 Mavs 19 7 10
3 Spurs 14 9 6
4 Kings 14 12 6
Houd er rekening mee dat het resulterende DataFrame geen rijen bevat waarvan de waarde in de teamkolom ‚ets‘ in de naam bevat.
In het bijzonder zijn de volgende teams uitgesloten van het DataFrame:
- Netten
- Raketten
- Goudklompjes
Merk op dat elk van deze teamnamen „ets“ in de naam had.
Voorbeeld 2: Filter rijen die niet een van meerdere specifieke tekenreeksen bevatten
De volgende code laat zien hoe u het Panda’s DataFrame filtert op rijen waarvan de teamkolom geen ‚ets‘ in de naam bevat:
#filter for rows that do not contain 'ets' or 'urs' in the 'team' column
filtered_df = df[df[' team ']. str . contains (' ets|urs ') == False ]
#view filtered DataFrame
print (filtered_df)
team points assists rebounds
2 Mavs 19 7 10
4 Kings 14 12 6
Houd er rekening mee dat het resulterende DataFrame geen rijen bevat waarvan de waarde in de teamkolom ‚ets‘ of ‚urs‘ in de naam bevat.
Opmerking : de | De operator betekent “OR” in panda’s.
Aanvullende bronnen
In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende filterbewerkingen in panda’s kunt uitvoeren:
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