ホームページ >バックエンド開発 >Python チュートリアル >複数の値に基づいて Pandas DataFrame をサブセット化する方法

複数の値に基づいて Pandas DataFrame をサブセット化する方法

Barbara Streisand
Barbara Streisandオリジナル
2024-12-16 20:37:24212ブラウズ

How to Subset a Pandas DataFrame Based on Multiple Values?

複数の値に基づいた Pandas DataFrame のサブセット化

次の例で示すように、Pandas では、特定の値に基づいて DataFrame をサブセット化するのは簡単です。

import pandas as pd

# Dataframe initialization
df = pd.DataFrame({'A': [5, 6, 3, 4], 'B': [1, 2, 3, 5]})

# Subset based on a single value
x = df[df['A'] == 3]

ただし、値のリストに一致する行を選択するときに問題が発生します。次の使用例を考えてみましょう:

# List of values to filter on
list_of_values = [3, 6]

# Subset attempt (incorrect syntax)
y = df[df['A'] in list_of_values]

Pandas では複数の値に基づいてサブセット化するためにわずかに異なる構文が必要なため、この構文はエラーになります。

解決策: isin() を使用するMethod

値のリストに基づいて DataFrame をサブセット化する正しい方法は、isin() メソッドを使用することです。修正されたコードは次のとおりです。

y = df[df['A'].isin(list_of_values)]

出力:

     A  B
1    6  2
2    3  3

isin() メソッドは、値のリストまたは配列を入力として受け取り、指定された列が一致する行を含む DataFrame を返します。入力内の任意の値。

逆選択

列の値が一致しない行を選択するには提供されたリストと一致する場合は、~ 演算子を isin() と組み合わせて使用​​できます。例:

# Inverse subset
z = df[~df['A'].isin(list_of_values)]

出力:

   A  B
0  5  1
3  4  5

以上が複数の値に基づいて Pandas DataFrame をサブセット化する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。