gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 10:41:09 24 4
gpt4 key购买 nike

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

或者是否有我可以在 python 中轻松使用的函数 rank() 来根据列“a”进行降序排列?

df = DataFrame(rand(10, 2), columns=list('ab'))
df.sort('a',ascending = False).reset_index()
# df.reset_index()

最佳答案

使用系列rank方法:

In [11]: df.a.rank()
Out[11]:
0 4
1 1
2 8
3 10
4 6
5 2
6 3
7 9
8 7
9 5
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

关于python - 在 python 中创建新的排名列,或使用排序和重置索引排名 - 如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20480826/

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