Pandas でのオブジェクト指向 SQL のようなフィルタリング
Pandas データフレームのフィルタリングはデータ分析において重要なタスクであり、効果的に利用する方法を理解するSQL に似た演算子を使用すると、このプロセスを大幅に簡素化できます。特に、IN 演算子と NOT IN 演算子は、メンバーシップ基準に基づいて行を選択するために広く使用されています。
Pandas SQL の IN および NOT IN と同等
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)]
これにより、countries_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
countrys_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 中国語 Web サイトの他の関連記事を参照してください。