在python中创建新的秩列,或者使用排序和重置索引秩-如何?

在python中创建新的秩列,或者使用排序和重置索引秩-如何?,python,pandas,rank,Python,Pandas,Rank,我正在尝试创建一个排名列,该列根据“a”中的值降序以创建“排名” 下面是我排序后得到的结果,但现在我有了我想要的索引作为我的列“rank”,如何使用索引创建新变量 或者是否有一个函数秩,我可以在python中轻松地使用它来根据列“a”进行降序排序 df = DataFrame(rand(10, 2), columns=list('ab')) df.sort('a',ascending = False).reset_index() # df.reset_index() 使用系列方法: 它有一个相

我正在尝试创建一个排名列,该列根据“a”中的值降序以创建“排名” 下面是我排序后得到的结果,但现在我有了我想要的索引作为我的列“rank”,如何使用索引创建新变量

或者是否有一个函数秩,我可以在python中轻松地使用它来根据列“a”进行降序排序

df = DataFrame(rand(10, 2), columns=list('ab'))
df.sort('a',ascending = False).reset_index()
# df.reset_index()
使用系列方法:

它有一个相应的递增参数:

In [12]: df.a.rank(ascending=False)
Out[12]: 
0     7
1    10
2     3
3     1
4     5
5     9
6     8
7     2
8     4
9     6
Name: a, dtype: float64
如果是平局,则取平均排名,您也可以选择“最小”、“最大”或“第一”:

In [21]: df = pd.DataFrame(np.random.randint(1, 5, (10, 2)), columns=list('ab'))

In [22]: df
Out[22]: 
   a  b
0  2  2
1  3  4
2  1  1
3  3  1
4  4  2
5  2  4
6  1  4
7  2  1
8  1  2
9  3  4

In [23]: df.a.rank()  # there are several 2s (which have rank 5)
Out[23]: 
0     5
1     8
2     2
3     8
4    10
5     5
6     2
7     5
8     2
9     8
Name: a, dtype: float64

In [24]: df.a.rank(method='first')
Out[24]: 
0     4
1     7
2     1
3     8
4    10
5     5
6     2
7     6
8     3
9     9
Name: a, dtype: float64
使用系列方法:

它有一个相应的递增参数:

In [12]: df.a.rank(ascending=False)
Out[12]: 
0     7
1    10
2     3
3     1
4     5
5     9
6     8
7     2
8     4
9     6
Name: a, dtype: float64
如果是平局,则取平均排名,您也可以选择“最小”、“最大”或“第一”:

In [21]: df = pd.DataFrame(np.random.randint(1, 5, (10, 2)), columns=list('ab'))

In [22]: df
Out[22]: 
   a  b
0  2  2
1  3  4
2  1  1
3  3  1
4  4  2
5  2  4
6  1  4
7  2  1
8  1  2
9  3  4

In [23]: df.a.rank()  # there are several 2s (which have rank 5)
Out[23]: 
0     5
1     8
2     2
3     8
4    10
5     5
6     2
7     5
8     2
9     8
Name: a, dtype: float64

In [24]: df.a.rank(method='first')
Out[24]: 
0     4
1     7
2     1
3     8
4    10
5     5
6     2
7     6
8     3
9     9
Name: a, dtype: float64

请注意,这与TIE情况下的排序/重置索引方法有细微的不同。请注意,这与TIE情况下的排序/重置索引方法有细微的不同。