Pandas按组内的值分组和排序[重复]

Posted

技术标签:

【中文标题】Pandas按组内的值分组和排序[重复]【英文标题】:Pandas group by and sorting by values within the group [duplicate] 【发布时间】:2020-08-24 04:33:53 【问题描述】:

在运行 XGBoost 并获得预测后,我需要根据 group id 对排名进行排序。我尝试了几种方法,但都不成功。

我的数据:

id     hotel_id   rank
1       5         2
1       3         3
1       4         1
2       23        4
2       12        2
2       62        3
2       22        1

这将是group_by 和基于rank 排序之后的结果。重要的是 id 保持不变。

id     hotel_id   rank
1       4         1
1       5         2
1       3         3
2       22        1
2       12        2
2       62        3
2       23        4

【问题讨论】:

df.groupby('id').cumcount()+1 df.sort_values(['id','rank'])? 这行得通@QuangHoang 谢谢。我可能只是标题而不是直截了当。您可以发布您的答案以便我批准吗? 【参考方案1】:

我相信这只是sort_values

df.sort_values(['id','rank'])

输出:

   id  hotel_id  rank
2   1         4     1
0   1         5     2
1   1         3     3
6   2        22     1
4   2        12     2
5   2        62     3
3   2        23     4

【讨论】:

以上是关于Pandas按组内的值分组和排序[重复]的主要内容,如果未能解决你的问题,请参考以下文章

提取数据框中每个组内的最大值[重复]

按组划分的最常见值(模式)[重复]

sql 分组排序

数据结构-排序-希尔排序

在 Pandas 数据框中按组过滤具有最小值的行 [重复]

DataGrid 进行不必要的重新排列