import pandas as pd
df = pd.DataFrame({'Sp':['a','b','c','d','e','f'], 'Mt':['s1', 's1', 's2','s2','s2','s3'],
'Value':[1,2,3,4,5,6],
'Count':[3,2,5,10,10,6]
})
方法1:在分组中过滤出Count最大的行
df.groupby('Mt').apply(lambda t: t[t.Count==t.Count.max()])
方法2:用transform获取原dataframe的index,然后过滤出需要的行
df.groupby(['Mt'])['Count'].agg(max)
df.groupby(['Mt'])['Count'].transform(max)
方法3:idmax(旧版本pandas是argmax)
df.groupby('Mt')['Count'].idxmax()