首頁 > 後端開發 > Python教學 > 如何取得分組 Pandas DataFrame 中最大計數的行?

如何取得分組 Pandas DataFrame 中最大計數的行?

DDD
發布: 2024-12-20 07:14:12
原創
717 人瀏覽過

How to Get Rows with the Maximum Count in Grouped Pandas DataFrames?

取得分組 Pandas DataFrame 中具有最大計數的行

問題:

從 pandas DataFrame中擷取具有最大計數的行「count」列的最大值,按「Sp」和「Mt」分組

範例:

範例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. 取得每組的最大計數:
import pandas as pd

df.groupby(['Sp', 'Mt'])['count'].max()
登入後複製

這將傳回一個系列,其中包含「Sp」和「Sp」的每個唯一組合的最大計數「Mt」。

  1. 建立布林掩碼:
idx = df.groupby(['Sp', 'Mt'])['count'].transform(max) == df['count']
登入後複製

這將建立一個布林掩碼,其中True 表示具有最大計數的行他們的小組。

  1. 過濾DataFrame:
df[idx]
登入後複製

這會過濾DataFrame 以僅包含idx 遮罩為True 的行,從而產生所需的輸出。

注意: 如果多個行出現在同一組中,則將傳回最大計數相等的多行。

以上是如何取得分組 Pandas DataFrame 中最大計數的行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板