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

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

Barbara Streisand
リリース: 2024-12-16 20:37:24
オリジナル
211 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート