Groupby を使用してグループ内の最大値を持つ行を取得する
データ分析を実行する場合、多くの場合、最大値を持つ行を特定することが必要になります。他の列によって定義された各グループ内の特定の列。この操作は、データ操作に広く使用されている Python ライブラリである pandas の groupby() メソッドとtransform() メソッドを使用して簡単に実行できます。
問題ステートメント
与え「Sp」、「Mt」、「Value」、「count」などの列を含むパンダ データフレームでは、最大値を持つ行を抽出することを目指しています。 「Sp」列と「Mt」列で定義された各グループ内の「count」値。
解決策
必要な行を取得するには、次の手順を使用できます。
それぞれの最大数を計算Group:
行の識別最大カウント付き:
例 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 |
代替アプローチ
別のアプローチには、各グループの最大数を表すデータフレーム。これは、次の手順を使用して実現できます。
以上がPandas のグループ内で最大値を持つ行を検索するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。