次の例で示すように、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 では複数の値に基づいてサブセット化するためにわずかに異なる構文が必要なため、この構文はエラーになります。
値のリストに基づいて 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 サイトの他の関連記事を参照してください。