首页 > 解决方案 > 如何在python中修改熊猫的排名

问题描述

我有一个熊猫数据框,如下所示。

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

现在,我想用rankingsof添加另一列ratings

我使用它做得很好;

df = df.assign(rankings=df.rank(ascending=False))

我想再次重新排列排名列并向数据框添加不同的列,如下所示。

有没有办法在 python 中的 pandas 中做到这一点?

如果需要,我很乐意提供更多详细信息。

标签: pythonpandas

解决方案


使用整数除法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

推荐阅读