gpt4 book ai didi

python - 如何在 Python Pandas 中按排名顺序转换点列值

转载 作者:行者123 更新时间:2023-12-01 01:18:46 26 4
gpt4 key购买 nike

我有一个像这样的 Pandas 数据框:

id1      id2        Points
1 1a 0.34
1 1a 0.34
1 2a 0.23
1 3a 0.71
2 73a 0.52
2 43a 0.2
2 43a 0.2
2 34a 0.83
3 23a 0.53
3 9a3 0.13

好的,事情就是这样。如果多行的 id1 和 id2 相同,则这些行的点也相同。

我想将这些积分转换为排名。不同的 id1 有所不同。如果两个人的id1id2相同,那么排名也会相同

预期输出:

id1      id2        Points     Rank
1 1a 0.34 2
1 1a 0.34 2
1 2a 0.23 3
1 3a 0.71 1
2 73a 0.52 2
2 43a 0.2 3
2 43a 0.2 3
2 34a 0.83 1
3 23a 0.53 1
3 9a3 0.13 2

如果我不清楚,请告诉我

最佳答案

使用GroupBy.rank带有参数denseascending=False:

df['new'] = df.groupby('id1')['Points'].rank('dense', ascending=False).astype(int)
print (df)
id1 id2 Points new
0 1 1a 0.34 2
1 1 1a 0.34 2
2 1 2a 0.23 3
3 1 3a 0.71 1
4 2 73a 0.52 2
5 2 43a 0.20 3
6 2 43a 0.20 3
7 2 34a 0.83 1
8 3 23a 0.53 1
9 3 9a3 0.13 2

关于python - 如何在 Python Pandas 中按排名顺序转换点列值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54053344/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com