Pandas 中物件導向的類似SQL 的過濾
過濾Pandas 資料幀是資料分析中的一項關鍵任務,並了解如何有效利用類似SQL 的運算子可以大大簡化這個過程。具體來說,IN 和 NOT IN 運算子廣泛用於根據成員資格條件選擇行。
SQL 的IN 和NOT IN 的Pandas 等效項
實作等效於Pandas 中SQL 的IN 運算符,您可以在Series 上利用isin()方法。此方法檢查 Series 中的每個元素是否包含在指定的清單或集合中。例如,要根據要包含的國家/地區清單過濾資料框:
df = pd.DataFrame({'country': ['US', 'UK', 'Germany', 'China']}) countries_to_keep = ['UK', 'China'] df[df['country'].isin(countries_to_keep)]
這將傳回一個資料框,其中僅包含country_to_keep 清單中存在國家/地區列值的行。
要執行與SQL 的NOT IN 等效的操作,只需使用~ 否定isin() 方法即可運算符:
df[~df['country'].isin(countries_to_keep)]
這將產生一個資料框,排除國家/地區列值與指定清單相符的行。
範例
考慮以下資料框:
df = pd.DataFrame({'country': ['US', 'UK', 'Germany', 'China']}) countries_to_keep = ['UK', 'China']
只選擇國家/地區所在的行country_to_keep:
df_filtered_in = df[df['country'].isin(countries_to_keep)]這將導致:
country 1 UK 3 China選擇國家/地區不在country_to_keep中的行:
df_filtered_not_in = df[~df['country'].isin(countries_to_keep)]這將產生:
country 0 US 2 Germany
結論
結論結論結論Pandas中的 isin() 方法提供了一種方便且高效的方法來實現 IN 和 NOT IN 風格的過濾,提供了強大的功能用於根據成員資格標準操作資料框的工具。以上是如何在Pandas中高效率執行SQL的IN和NOT IN過濾?的詳細內容。更多資訊請關注PHP中文網其他相關文章!