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
在 运行 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