这个问题已经有了答案:
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