【问题标题】:Pandas group by and sorting by values within the group [duplicate]Pandas按组内的值分组和排序[重复]
【发布时间】: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 谢谢。我可能只是标题而不是直截了当。您可以发布您的答案以便我批准吗?

标签: python pandas pandas-groupby ranking


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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-05
    • 2017-08-01
    • 2021-10-14
    • 2019-03-20
    • 2021-01-06
    • 1970-01-01
    相关资源
    最近更新 更多