首页 > 解决方案 > 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

标签: pythonpandassorting

解决方案


国际大学联合会,

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

推荐阅读