这个问题已经有了答案:
Get the Row(s) which have the max value in groups using groupby
11个答案
我改写了我的问题。我正在搜索以下问题的解决方案:
我有一个数据框架,比如:

   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

我的目标是获得每组中计数等于max的所有行,例如:
MM4  S4   bg     10
MM4  S2   cb     8
MM4  S2   uyi    8

i按['sp'、'mt'分组
有人知道我怎么在熊猫或者巨蟒身上做吗?

最佳答案

>>> print d
     Sp  Mt Value  Count
ID
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

>>> d.groupby('Sp').apply(lambda t: t[t.Count==t.Count.max()])
         Sp  Mt Value  Count
Sp  ID
MM2 4   MM2  S4    bg     10
MM4 7   MM4  S2    cb      8
    8   MM4  S2   uyi      8

07-24 09:20