如何在python中修改pandas中的秩
我有一个熊猫数据框,如下所示如何在python中修改pandas中的秩,python,pandas,Python,Pandas,我有一个熊猫数据框,如下所示 item x1 x2 x3 x4 x5 ratings item1 x x x x x 46 item1 x x x x x 32 item1 x x x x x 16 item1 x x x x x 6 item1 x x x x x 36 item1 x x x x x 36 item1 x x x x x 12 item1 x x x x x 1
item x1 x2 x3 x4 x5 ratings
item1 x x x x x 46
item1 x x x x x 32
item1 x x x x x 16
item1 x x x x x 6
item1 x x x x x 36
item1 x x x x x 36
item1 x x x x x 12
item1 x x x x x 13
item1 x x x x x 41
item1 x x x x x 42
item1 x x x x x 43
item1 x x x x x 3
item1 x x x x x 76
item1 x x x x x 36
item1 x x x x x 26
item1 x x x x x 12
item1 x x x x x 11
item1 x x x x x 88
item1 x x x x x 87
item1 x x x x x 78
item1 x x x x x 43
item1 x x x x x 42
现在,我想添加另一个列,其中包含评级的排名
我用它做得很好
df = df.assign(rankings=df.rank(ascending=False))
我想再次增加排名列,并在数据框中添加一个不同的列,如下所示
item x1 x2 x3 x4 x5 ratings
item1 x x x x x 46
item1 x x x x x 32
item1 x x x x x 16
item1 x x x x x 6
item1 x x x x x 36
item1 x x x x x 36
item1 x x x x x 12
item1 x x x x x 13
item1 x x x x x 41
item1 x x x x x 42
item1 x x x x x 43
item1 x x x x x 3
item1 x x x x x 76
item1 x x x x x 36
item1 x x x x x 26
item1 x x x x x 12
item1 x x x x x 11
item1 x x x x x 88
item1 x x x x x 87
item1 x x x x x 78
item1 x x x x x 43
item1 x x x x x 42
- 排名从1到10-->获得排名
1
- 排名从11-20-->获得排名
2
- 排名从21-30-->获得排名
3
- 等等
有没有一种方法可以在python中的pandas中实现这一点
如果需要,我很乐意提供更多详细信息。使用整数除以10
并添加1
,最后转换为整数:
df = df.assign(rankings=df['ratings'].rank(ascending=False))
df['new'] = (df['rankings'] // 10 + 1).astype(int)
print (df)
item x1 x2 x3 x4 x5 ratings rankings new
0 item1 x x x x x 46 5.0 1
1 item1 x x x x x 32 14.0 2
2 item1 x x x x x 16 16.0 2
3 item1 x x x x x 6 21.0 3
4 item1 x x x x x 36 12.0 2
5 item1 x x x x x 36 12.0 2
6 item1 x x x x x 12 18.5 2
7 item1 x x x x x 13 17.0 2
8 item1 x x x x x 41 10.0 2
9 item1 x x x x x 42 8.5 1
10 item1 x x x x x 43 6.5 1
11 item1 x x x x x 3 22.0 3
12 item1 x x x x x 76 4.0 1
13 item1 x x x x x 36 12.0 2
14 item1 x x x x x 26 15.0 2
15 item1 x x x x x 12 18.5 2
16 item1 x x x x x 11 20.0 3
17 item1 x x x x x 88 1.0 1
18 item1 x x x x x 87 2.0 1
19 item1 x x x x x 78 3.0 1
20 item1 x x x x x 43 6.5 1
21 item1 x x x x x 42 8.5 1
非常感谢你的回答。不过,我想你误解了我的问题。我添加了一个基于评级的排名
函数。现在,我想将我的排名转换为排名1,2,3,4,5,6,7,8,9,10
获得新排名=1
,排名[11-20]
获得新排名=2
和排名[21-30]
获得新排名=3
。你能告诉我如何在熊猫身上做到这一点吗。非常感谢:)