使用「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中文網其他相關文章!