Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich die IN- und NOT-IN-Filterung von SQL in Pandas effizient durchführen?

Wie kann ich die IN- und NOT-IN-Filterung von SQL in Pandas effizient durchführen?

Susan Sarandon
Susan SarandonOriginal
2024-12-20 20:05:17314Durchsuche

How Can I Efficiently Perform SQL's IN and NOT IN Filtering in Pandas?

Objektorientierte SQL-ähnliche Filterung in Pandas

Das Filtern von Pandas-Datenrahmen ist eine entscheidende Aufgabe bei der Datenanalyse und dem Verständnis, wie man sie effektiv nutzt SQL-ähnliche Operatoren können diesen Prozess erheblich vereinfachen. Insbesondere werden die IN- und NOT IN-Operatoren häufig zum Auswählen von Zeilen basierend auf Zugehörigkeitskriterien verwendet.

Pandas-Äquivalent von SQLs IN und NOT IN

Um das Äquivalent von zu erreichen Mit dem IN-Operator von SQL in Pandas können Sie die isin()-Methode für eine Serie nutzen. Diese Methode prüft, ob jedes Element in der Serie in einer angegebenen Liste oder Menge enthalten ist. Um beispielsweise einen Datenrahmen basierend auf einer Liste einzubeziehender Länder zu filtern:

df = pd.DataFrame({'country': ['US', 'UK', 'Germany', 'China']})
countries_to_keep = ['UK', 'China']
df[df['country'].isin(countries_to_keep)]

Dies gibt einen Datenrahmen zurück, der nur die Zeilen enthält, in denen die Länderspaltenwerte in der Liste „country_to_keep“ vorhanden sind.

Um das Äquivalent von SQLs NOT IN auszuführen, negieren Sie einfach die isin()-Methode mit dem ~-Operator:

df[~df['country'].isin(countries_to_keep)]

Dies erzeugt a Datenrahmen mit Ausnahme der Zeilen, in denen die Länderspaltenwerte mit der angegebenen Liste übereinstimmen.

Beispiel

Betrachten Sie den folgenden Datenrahmen:

df = pd.DataFrame({'country': ['US', 'UK', 'Germany', 'China']})
countries_to_keep = ['UK', 'China']

Nur ​​zur Auswahl Zeilen mit Ländern in states_to_keep:

df_filtered_in = df[df['country'].isin(countries_to_keep)]

Dies wird resultieren in:

    country
1        UK
3     China

Um Zeilen mit Ländern auszuwählen, die nicht in „country_to_keep“ enthalten sind:

df_filtered_not_in = df[~df['country'].isin(countries_to_keep)]

Dies ergibt:

    country
0        US
2   Germany

Schlussfolgerung

Die isin()-Methode in Pandas bietet eine bequeme und effiziente Möglichkeit, Filter im IN- und NOT-IN-Stil zu implementieren ein leistungsstarkes Tool zum Bearbeiten von Datenrahmen basierend auf Mitgliedschaftskriterien.

Das obige ist der detaillierte Inhalt vonWie kann ich die IN- und NOT-IN-Filterung von SQL in Pandas effizient durchführen?. 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