Pandas-Datenrahmen mit „In“ und „Nicht In“ filtern: Eine einfachere Lösung
Bei der Arbeit mit Pandas-Datenrahmen ist dies häufig erforderlich um Daten nach bestimmten Kriterien zu filtern. Eine häufige Anforderung besteht darin, Zeilen zu finden, in denen eine bestimmte Spalte mit einem Satz vordefinierter Werte übereinstimmt oder nicht übereinstimmt, ähnlich den SQL-Operatoren „IN“ und „NOT IN“.
Alternative zum Merge- Basierender Ansatz
Traditionell haben einige Benutzer einen zusammenführungsbasierten Ansatz verwendet, um diese Filterung zu erreichen. Obwohl diese Methode funktionsfähig ist, gilt sie als ineffizient und unnötig komplex.
Verwendung von pd.Series.isin
Die ideale Lösung liegt in der Verwendung der Funktion pd.Series.isin. Es bietet einfache Funktionalität sowohl für die „IN“- als auch für die „NICHT IN“-Filterung.
„IN“-Filterung
Zum Filtern von Zeilen, in denen eine bestimmte Spalte mit einem beliebigen Wert in a übereinstimmt Bereitgestellte Liste, verwenden Sie:
something.isin(somewhere)
"NICHT IN" Filtern
Alternativ können Sie zum Filtern von Zeilen, in denen ein Spaltenwert mit keinem Wert in einer bestimmten Liste übereinstimmt, Folgendes verwenden:
~something.isin(somewhere)
Beispielverwendung
Bedenken Sie Folgendes Beispiel:
df = pd.DataFrame({'country': ['US', 'UK', 'Germany', 'China']}) countries_to_keep = ['UK', 'China'] df_in = df[df.country.isin(countries_to_keep)] df_not_in = df[~df.country.isin(countries_to_keep)] print(df_in) print(df_not_in)
Ausgabe:
country 1 UK 3 China country 0 US 2 Germany
Wie gezeigt, bietet pd.Series.isin eine prägnante und effiziente Methode zum Filtern von Pandas-Datenrahmen. Es macht komplizierte zusammenführungsbasierte Ansätze überflüssig und macht den Filterprozess sowohl einfacher als auch leistungsfähiger.
Das obige ist der detaillierte Inhalt vonWie kann ich Pandas-DataFrames mithilfe der Operatoren „IN' und „NOT IN' effizient filtern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!