gpt4 book ai didi

python - 如何获得当前行与前几行相比的排名

转载 作者:太空宇宙 更新时间:2023-11-03 14:39:13 24 4
gpt4 key购买 nike

如何获取当前行与之前行相比的Rank

我有一个像这样的数据框:

Instru Price Volume
ABCD 1000 100258
ABCD 1000 100252
ABCD 1000 100168
ABCD 1000 100390
ABCD 1000 100470
ABCD 1000 100420

我想获取当前行相对于 Volume Column 的所有先前行的排名。

所需的数据框数据:

Instru Price Volume  Rank
ABCD 1000 100258 1 => 1st Row so Rank 1
ABCD 1000 100252 2 => Rank 2 (Compare 100258,100252)
ABCD 1000 100168 3 => Rank 3 (Compare 100258,100252,100168)
ABCD 1000 100390 1 => Rank 1 (Compare 100390,100258,100252,100168)
ABCD 1000 100470 1 => Rank 1 (Compare 100470,100390,100258,100252,100168)
ABCD 1000 100420 2 => Rank 2 (Compare 100470,100420,100390,100258,100252,100168)

pandas.DataFrame.rank 函数不符合我的目的。

最佳答案

使用np.searchsorted累积排序之后:

df['Rank'] = np.array([i - np.searchsorted(sorted(df.Volume[:i]), v) for i, v in enumerate(df.Volume)]) + 1
print(df)

输出

  Instru  Price  Volume  Rank
0 ABCD 1000 100258 1
1 ABCD 1000 100252 2
2 ABCD 1000 100168 3
3 ABCD 1000 100390 1
4 ABCD 1000 100470 1
5 ABCD 1000 100420 2

关于python - 如何获得当前行与前几行相比的排名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54733869/

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