Pandas 分组依据并按组内的值排序

Pandas group by and sorting by values within the group

在 运行 XGBoost 并获得预测后,我需要根据组 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

我相信这只是 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