Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich Pandas-DataFrames mithilfe der Operatoren „IN' und „NOT IN' effizient filtern?

Wie kann ich Pandas-DataFrames mithilfe der Operatoren „IN' und „NOT IN' effizient filtern?

Barbara Streisand
Barbara StreisandOriginal
2024-12-29 16:22:19846Durchsuche

How Can I Efficiently Filter Pandas DataFrames Using

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn