pandas groupby 分组取每组的前几行记录方法,具有很好的参考价值,希望对大家有所帮助。
import pandas as pd
df = pd.DataFrame({'class':['a','a','b','b','a','a','b','c','c'],'score':[3,5,6,7,8,9,10,11,14]})
print(df)
df.sort_values(['class','score'],ascending=[1,0],inplace=True)
grouped = df.groupby(['class']).head(2)
print(grouped)
class score
0 a 3
1 a 5
2 b 6
3 b 7
4 a 8
5 a 9
6 b 10
7 c 11
8 c 14
class score
5 a 9
4 a 8
6 b 10
3 b 7
8 c 14
7 c 11