首頁 > 後端開發 > Python教學 > 如何使用 Pandas 的'isin”函數來模仿 SQL 的'IN”和'NOT IN”運算符?

如何使用 Pandas 的'isin”函數來模仿 SQL 的'IN”和'NOT IN”運算符?

Susan Sarandon
發布: 2024-12-21 22:25:22
原創
174 人瀏覽過

How Can I Use Pandas' `isin` Function to Mimic SQL's `IN` and `NOT IN` Operators?

利用SQL 的IN 和NOT IN 功能查詢Pandas DataFrames

過濾Pandas DataFrames 中的資料是資料處理中的常見任務。 Pandas 提供了多種方法來實現這一點,包括直覺的 isin 函數。本文示範如何利用 isin 來篩選數據,模仿 SQL 的 IN 和 NOT IN 運算子。

理解問題

SQL 的 IN 和 NOT IN 運算子可讓您根據值是否包含在指定清單中或排除在指定清單中來篩選資料。此功能對於隔離特定記錄或刪除不需要的資料至關重要。

使用 isin 過濾資料

Pandas 提供了 isin 函數,該函數對 Series 物件進行操作。它會傳回布林掩碼,指示 Series 中的每個元素是否與提供的清單或陣列中的任何值相符。

IN 過濾

要執行IN 操作,只需傳遞要使用以下語法與isin 函數匹配的值列表:

something.isin(somewhere)
登入後複製

NOT IN濾波

要執行NOT IN操作,請在 isin 函數之前使用否定運算子 ~:

~something.isin(somewhere)
登入後複製

工作範例

考慮以下 DataFrame df和要保留的國家列表country_to_keep:

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

查找country_to_keep:

df[df.country.isin(countries_to_keep)]
登入後複製

輸出中包含國家/地區的行:

    country
1        UK
3     China
登入後複製

尋找不包含國家/地區的行包含在country_to_keep:

df[~df.country.isin(countries_to_keep)]
登入後複製

輸出:

    country
0        US
2   Germany
登入後複製

使用isin 的好處

  • 簡潔: isin 函數提供了一種簡潔的方法來執行 IN 和 NOT IN 過濾,減少需要複雜的程式碼。
  • 靈活性: isin 可以與任何類型的 Series 一起使用,包括字串、整數和物件。
  • 效率: isin 利用最佳化的演算法來執行過濾,即使對於大型資料也能高效地進行過濾

透過理解和利用isin 函數,您可以根據指定清單或陣列中的值有效過濾Pandas DataFrame,從而利用SQL 的IN 和NOT IN的強大功能來增強您的資料處理任務運營商。

以上是如何使用 Pandas 的'isin”函數來模仿 SQL 的'IN”和'NOT IN”運算符?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板