ホームページ > バックエンド開発 > Python チュートリアル > 複雑な複数列の基準に基づいて Pandas DataFrame 行を選択する方法

複雑な複数列の基準に基づいて Pandas DataFrame 行を選択する方法

DDD
リリース: 2024-12-01 21:07:11
オリジナル
584 人が閲覧しました

How to Select Pandas DataFrame Rows Based on Complex Multi-Column Criteria?

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' から選択します。

  • 対応する値'B' は 50 より大きくなければなりません。
  • 'C' に対応する値は 900 と等しくてはなりません。

これを解決するには、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 サイトの他の関連記事を参照してください。

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