ホームページ >バックエンド開発 >Python チュートリアル >「IN」および「NOT IN」演算子を使用して Pandas DataFrame を効率的にフィルタリングするにはどうすればよいですか?
Pandas データフレームを「In」と「Not In」でフィルタリングする: よりシンプルなソリューション
Pandas データフレームを操作する場合、多くの場合、これが必要になります。特定の基準に基づいてデータをフィルタリングします。一般的な要件の 1 つは、SQL の "IN" および "NOT IN" 演算子と同様に、特定の列が事前定義された値のセットと一致する行、または一致しない行を検索することです。
マージの代替手段ベースのアプローチ
従来、一部のユーザーはこのフィルタリングを実現するためにマージベースのアプローチを採用していました。このメソッドは機能しますが、非効率的で不必要に複雑であると考えられています。
pd.Series.isin の使用
理想的な解決策は、pd.Series.isin 関数を使用することです。これは、「IN」フィルタリングと「NOT IN」フィルタリングの両方の簡単な機能を提供します。
「IN」フィルタリング
特定の列がフィールド内の任意の値と一致する行をフィルタリングするには提供されたリストでは、次を使用します:
something.isin(somewhere)
"NOT IN"フィルタリング
または、列の値が指定されたリスト内のどの値にも一致しない行をフィルタリングするには、次を使用します。
~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 中国語 Web サイトの他の関連記事を参照してください。