pandas.DataFrame からの複雑な条件による選択
Pandas を使用したデータ分析では、複雑な条件に基づいて特定の行または列を選択する必要があることがよくあります。基準。この質問は、「B」と「C」の対応する値が特定の条件を満たす場合に、列「A」から値を選択する方法を示します。
問題を理解するために、サンプル データフレームを作成してみましょう。
import pandas as pd from random import randint df = pd.DataFrame({'A': [randint(1, 9) for x in range(10)], 'B': [randint(1, 9)*10 for x in range(10)], 'C': [randint(1, 9)*100 for x in range(10)]})
ここで、次の条件を満たす値を 'A' から選択します。
これを解決するには、Pandas の列操作を使用できます。
df["B"] > 50
これは、各要素が 'B' の行に対応するブール値の Series オブジェクトを作成し、それぞれの要素が 'B' の行に対応するかどうかを示します。 「B」値が 50 より大きいです。
(df["B"] > 50) & (df["C"] != 900)
これは、ブロードキャスト演算子と論理演算子を利用してブール型 Series オブジェクトを結合し、各要素が対応する行が両方の条件を満たすかどうかを示す新しい Series を作成します。
このシリーズをインデックスとして使用すると、「A」値を抽出できます。
df["A"][(df["B"] > 50) & (df["C"] != 900)]
または、次のように使用します。 .loc 構文:
df.loc[(df["B"] > 50) & (df["C"] != 900), "A"]
このアプローチでは、指定された基準を満たす行が効率的に抽出され、選択されたデータに対するさらなる分析や操作が可能になります。
以上が複雑な複数列の基準に基づいて Pandas DataFrame 行を選択する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。