Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Python中按秩顺序转换点列值_Python_Pandas - Fatal编程技术网

如何在Python中按秩顺序转换点列值

如何在Python中按秩顺序转换点列值,python,pandas,Python,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

我有这样一个熊猫数据框:

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不同。如果两个人拥有相同的
id1
id2
,那么排名也将相同

预期产出:

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
请告诉我,如果我不清楚,请与参数一起使用

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

你回答了我的大部分问题。你从哪里学到了这么多关于熊猫的东西?我读文档很累,但从中理解起来真的很难。@JohnDoe-是的,我同意,第一次是不容易的。我真的很喜欢。嘿,你的答案不包括
id2
任何地方。这是如何工作的?@JohnDoe-这是因为
id2
每个组的
点数相同。