首頁 >後端開發 >Python教學 >如何使用'IN”和'NOT IN”運算子有效過濾 Pandas DataFrame?

如何使用'IN”和'NOT IN”運算子有效過濾 Pandas DataFrame?

Barbara Streisand
Barbara Streisand原創
2024-12-29 16:22:19838瀏覽

How Can I Efficiently Filter Pandas DataFrames Using

使用「In」和「Not In」過濾Pandas 資料框:更簡單的解決方案

使用Pandas 資料框時,通常有必要根據特定標準過濾資料。一個常見的要求是尋找特定列與一組預定義值相符或不符的行,類似於 SQL“IN”和“NOT IN”運算符。

替代合併-基於方法

傳統上,有些使用者採用基於合併的方法來實現這種過濾。雖然有效,但此方法被認為效率低且不必要地複雜。

使用 pd.Series.isin

理想的解決方案在於利用 pd.Series.isin 函數。它為“IN”和“NOT IN”過濾提供了簡單的功能。

「IN」過濾

過濾特定列與中的任何值匹配的行提供的列表,使用:

something.isin(somewhere)

「不在”過濾

或者,要過濾列值與給定列表中的任何值都不匹配的行,請使用:

~something.isin(somewhere)

示例用法

考慮以下因素範例:

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)

輸出:

    country
1        UK
3     China
    country
0        US
2   Germany

如圖所示,pd.Series.isin 提供了一種簡潔且高效的方法來過濾Pandas 數據幀。它消除了對複雜的基於合併的方法的需要,使過濾過程更簡單、更有效率。

以上是如何使用'IN”和'NOT IN”運算子有效過濾 Pandas DataFrame?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn