ホームページ > バックエンド開発 > Python チュートリアル > Pandas のグループ内で最大値を持つ行を検索するにはどうすればよいですか?

Pandas のグループ内で最大値を持つ行を検索するにはどうすればよいですか?

DDD
リリース: 2024-12-23 16:57:14
オリジナル
289 人が閲覧しました

How to Find Rows with Maximum Values within Groups in Pandas?

Groupby を使用してグループ内の最大値を持つ行を取得する

データ分析を実行する場合、多くの場合、最大値を持つ行を特定することが必要になります。他の列によって定義された各グループ内の特定の列。この操作は、データ操作に広く使用されている Python ライブラリである pandas の groupby() メソッドとtransform() メソッドを使用して簡単に実行できます。

問題ステートメント

与え「Sp」、「Mt」、「Value」、「count」などの列を含むパンダ データフレームでは、最大値を持つ行を抽出することを目指しています。 「Sp」列と「Mt」列で定義された各グループ内の「count」値。

解決策

必要な行を取得するには、次の手順を使用できます。

  1. それぞれの最大数を計算Group:

    • groupby() メソッドを使用して DataFrame を「Sp」列と「Mt」列でグループ化し、max() 関数を「count」列に適用して、各グループの最大カウント値。
  2. 行の識別最大カウント付き:

    • transform() メソッドを使用して、各行の True/False ブール値シリーズを返します。「True」は、その行がそのグループ内で最大カウント値を持つことを示します.
    • を使用して、True 値に対応する元の DataFrame 行を取得します。

例 1

次の DataFrame について考えます。

Sp Mt Value count
MM1 S1 a 3
MM1 S1 n 2
MM1 S3 cb 5
MM2 S3 mk 8
MM2 S4 bg 10
MM2 S4 dgd 1
MM4 S2 rd 2
MM4 S2 cb 2
MM4 S2 uyi 7

前述の手順の結果を適用すると、次の出力:

Sp Mt Value count
MM1 S1 a 3
MM1 S3 cb 5
MM2 S3 mk 8
MM2 S4 bg 10
MM4 S2 uyi 7

例 2

別の DataFrame の場合:

Sp Mt Value count
MM2 S4 bg 10
MM2 S4 dgd 1
MM4 S2 rd 2
MM4 S2 cb 8
MM4 S2 uyi 8

出力は次のようになります:

Sp Mt Value count
MM2 S4 bg 10
MM4 S2 cb 8
MM4 S2 uyi 8

代替アプローチ

別のアプローチには、各グループの最大数を表すデータフレーム。これは、次の手順を使用して実現できます。

  1. df.groupby(['Sp', 'Mt'])['count'].max() を使用して各グループの最大数を計算します。 Expression.
  2. df['count_max'] = df.groupby(['Sp', 'Mt'])['count'].transform(max)expression.
  3. DataFrame をフィルタリングして、'count' 列が 'count_max' 列と等しい行のみを含めます。

以上がPandas のグループ内で最大値を持つ行を検索するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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