import pandas as pd
data = {'id':['A','A','A','B','B','C','C','C'],'grade':[6,7,8,5,6,4,8,9],'time':['0102','0203','0304','0405','0506','0607','0708','0809']}
data = pd.DataFrame(data)
print(data)
id grade time
0 A 6 0102
1 A 7 0203
2 A 8 0304
3 B 5 0405
4 B 6 0506
5 C 4 0607
6 C 8 0708
7 C 9 0809
先按grade降序排列,再按id分组,再取组内grade最大的两行
data.sort_values('grade',ascending = False)
group = data.groupby(['id']).head(2)
print(group)
id grade time
0 A 6 0102
1 A 7 0203
3 B 5 0405
4 B 6 0506
5 C 4 0607
6 C 8 0708