在组内按组排序

我想按两列对数据帧进行分组,然后在组内对聚合结果进行排序

[167]on

:
df
Output[167]:
统计作业源
0 2销售A
1 4销售B
2.6销售C
3.3销售D
4.7销售E
5市场A
6.3市场B
7.2市场C
8.4市场D
9.1市场E
At[168]on:
groupby(['job','source']).agg({'count':sum})
Out[168]:
计数
工作来源
市场A 5
B 3
C2
D 4
e1
销售A 2
B 4
C6
D 3
E 7

现在,我想在每个组中按降序对count列进行排序。然后只取最上面的三排。要获得类似于:

计数
工作来源
市场A 5
D 4
B 3
销售电子7
C6
B 4

你也可以一次完成,先排序,然后用head取每组的前3个

[34]on

:df.sort_值(['job','count',升序=False)。groupby('job')。head(3)
Output[35]:
统计作业源
4.7销售E
2.6销售C
1 4销售B
5市场A
8.4市场D
6.3市场B

发表评论