取得Pandas 組中計數最大的行
問題:
問題:問題:
問題:
max_counts = df.groupby(['Sp', 'Mt'])['count'].max()
問題:
問題:
idx = df.groupby(['Sp', 'Mt'])['count'].transform(max) == df['count']
解:
第1 步:找出每組的最大計數
決定每個組別的最大計數組,使用groupby() 和max()函數:result = df[idx]
步驟 2:辨識具有最大計數的行
取得原始 DataFrame中具有最大計數的行的索引,使用transform()方法:
df = pd.DataFrame({ 'Sp': ['MM1', 'MM1', 'MM1', 'MM2', 'MM2', 'MM2', 'MM4', 'MM4', 'MM4'], 'Mt': ['S1', 'S1', 'S3', 'S3', 'S4', 'S4', 'S2', 'S2', 'S2'], 'Value': ['a', 'n', 'cb', 'mk', 'bg', 'dgd', 'rd', 'cb', 'uyi'], 'count': [3, 2, 5, 8, 10, 1, 2, 2, 7] })
第3步:根據最大計數過濾行
Sp Mt Value count 0 MM1 S1 a 3 2 MM1 S3 cb 5 3 MM2 S3 mk 8 4 MM2 S4 bg 10 8 MM4 S2 uyi 7
最後,使用布林索引過濾DataFrame以僅選擇具有最大計數的行:
這將傳回一個新的 DataFrame,其中僅包含每個資料框中「count」列具有最高值的行組。df = pd.DataFrame({ 'Sp': ['MM2', 'MM2', 'MM4', 'MM4', 'MM4'], 'Mt': ['S4', 'S4', 'S2', 'S2', 'S2'], 'Value': ['bg', 'dgd', 'rd', 'cb', 'uyi'], 'count': [10, 1, 2, 8, 8] })
示例:
Sp Mt Value count 4 MM2 S4 bg 10 7 MM4 S2 cb 8 8 MM4 S2 uyi 8
示例1:
輸出:範例2 :輸出:注意:如果組內的多行有最大計數,所有這些行都將被傳回。以上是如何在 Pandas GroupBy 操作中找到最大計數的行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!