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()+1df.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按组内的值分组和排序[重复]的主要内容,如果未能解决你的问题,请参考以下文章