我希望能够按照两个列对我的数据框进行分组,并在这些组内排序聚合结果。
In [167]: df
Out[167]:
count job source
0 2 sales A
1 4 sales B
2 6 sales C
3 3 sales D
4 7 sales E
5 5 market A
6 3 market B
7 2 market C
8 4 market D
9 1 market E
In [168]: df.groupby(['job','source']).agg({'count':sum})
Out[168]:
count
job source
market A 5
B 3
C 2
D 4
E 1
sales A 2
B 4
C 6
D 3
E 7
现在我想对每个组内的“count”列按降序排序,然后只取前三行。得到类似下面的结果:
count
job source
market A 5
D 4
B 3
sales E 7
C 6
B 4
groupby
时,中间(分组器)对象会得到一个包含这些组的多级索引,并且原始索引会被删除。除非你覆盖默认的groupby(... as_index=True)
。 - smci