我有一个数据框,格式如下。
Type Major GPA
F A 2.6
T B 3.4
T C 2.9
F A 1.8
T B 2.8
F C 3.5
...
我希望按照Type
和Major
对数据框("students")进行分组,统计每个分组的行数,然后将每个类型中最受欢迎的专业从高到低排序,最后创建一个新的数据框,包括前20个最受欢迎的专业。
我希望输出结果如下:
F
A 21
B 19
C 15
...
T
A 14
B 7
C 3
这是我所做的事情:
most_popular = students.groupby(['Type', 'Major']).size().sort_values(ascending=False)[:20]
但是这样做会同时对两种类型进行排序,而不是分别排序。
感谢您的帮助。