python - Pandas:按两个参数分组并按第三个参数排序
问题描述
我想按两列(名称和预算)对我的数据框进行分组,然后按第三个参数(Prio)对聚合结果进行排序。
Name Budget Prio Quantity
peter A 2 12
B 1 123
joe A 3 34
B 1 51
C 2 43
我已经检查了这篇文章,这非常有帮助并导致以下输出。但是,我无法按第三个参数(Prio)管理排序。
df_agg = df.groupby(['Name','Budget','Prio']).agg({'Quantity':sum})
g = df_agg['Quantity'].groupby(level=0, group_keys=False)
res = g.apply(lambda x: x.sort_values(ascending=True))
我现在想在每个组中按升序对 prio 进行排序。得到类似的东西:
Name Budget Prio Quantity
peter B 1 123
A 2 12
joe B 1 51
C 2 34
A 3 43
解决方案
国际大学联合会,
df.groupby(['Name','Budget','Prio']).agg({'Quantity':sum}).sort_values(['Name','Prio'])
输出:
Quantity
Name Budget Prio
joe B 1 51
C 2 4
A 3 34
peter B 1 123
A 2 12