So verwenden sie den „not in“-filter in pandas (mit beispielen)
Sie können die folgende Syntax verwenden, um einen „NOT IN“-Filter in einem Pandas-DataFrame durchzuführen:
df[ ~ df[' col_name ']. isin (values_list)]
Beachten Sie, dass die Werte in Values_list numerische Werte oder Zeichenwerte sein können.
Die folgenden Beispiele zeigen, wie Sie diese Syntax in der Praxis anwenden können.
Beispiel 1: Führen Sie einen „NON IN“-Filter mit einer Spalte durch
Der folgende Code zeigt, wie ein Pandas-DataFrame nach Zeilen gefiltert wird, in denen ein Teamname nicht in einer Namensliste enthalten ist:
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
Und der folgende Code zeigt, wie man einen Pandas-DataFrame nach Zeilen filtert, in denen die Spalte „Punkte“ bestimmte Werte nicht enthält:
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
Beispiel 2: Führen Sie einen „NON IN“-Filter mit mehreren Spalten durch
Der folgende Code zeigt, wie ein Pandas-DataFrame nach Zeilen gefiltert wird, in denen sich bestimmte Teamnamen nicht in einer von mehreren Spalten befinden:
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
Beachten Sie, dass wir jede Zeile gefiltert haben, in der „C“- oder „E“-Teams in der Spalte „star_team“ oder in der Spalte „backup_team“ auftauchten.
Zusätzliche Ressourcen
In den folgenden Tutorials wird erläutert, wie andere gängige Filtervorgänge in Pandas durchgeführt werden:
So verwenden Sie „Ist nicht Null“ in Pandas
So filtern Sie einen Pandas DataFrame nach Spaltenwerten
So filtern Sie Pandas DataFrame-Zeilen nach Datum
So filtern Sie einen Pandas DataFrame nach mehreren Bedingungen