首頁 >後端開發 >Python教學 >如何在 Pandas DataFrame 中找到群組內具有最大值的行?

如何在 Pandas DataFrame 中找到群組內具有最大值的行?

Susan Sarandon
Susan Sarandon原創
2024-12-23 12:44:14926瀏覽

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

使用Groupby 取得群組中具有最大值的行

辨識pandas DataFrame 中在特定列中顯示最大值的所有行分組資料中是一項常見任務。這可以透過使用 groupby 操作和一系列轉換來有效地實現。

要在Sp 和Mt 列定義的每個群組中尋找具有最大計數的行,我們按照以下步驟操作:

  1. 計算群組最大值:首先,使用groupby 函數計算每個群組的最大計數。這將傳回一個包含由組鍵索引的最大計數值的系列。
  2. 建立布林遮罩:使用變換和相等比較建立布林遮罩以識別計數等於群組最大值。此遮罩將為具有最大計數的行提供 True 值。
  3. 過濾 DataFrame: 使用遮罩過濾 DataFrame,僅保留具有最大計數的行。

範例1:

考慮以下內容DataFrame:

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

透過應用上述步驟,我們得到所需的輸出:

   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

範例2:

對於另一個DataFrame :

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

結果將為:

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

注意: 如果組內的多行具有相同的最大計數,則所有這些行都將包含在輸出中。如果這是不希望的,則可能需要進一步過濾。

以上是如何在 Pandas DataFrame 中找到群組內具有最大值的行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn