即使 python 中的相同值也是唯一的百分位数

unique percentile even for same value in python

即使 Python

中的相同值,我也希望获得唯一的百分位数

例如,以下情况给出了预期的输出。

案例一

import pandas as pd
s1 = pd.Series([1,2,3,4])
s1.rank(pct=True)

案例 1 输出 - [0.25, 0.5, 0.75, 1]

即使输入序列为 [2, 2, 2, 4],我也希望输出相同。然而,这里的输出是 [0.5, 0.5, 0.5, 1]。我不介意任何一个输出。

[0.25, 0.5, 0.75, 1]    
[0.5, 0.25, 0.75, 1]
[0.25, 0.75, 0.5, 1]

如果有办法实现,请告诉我。

没有简单的函数可以做到这一点。虽然我明白你想做什么,但这不是百分位分数。事实上,您在这里显示的是百分比排名,与百分位数不同。

要获得您想要的功能,我相信您必须自己分组和计算值。

Rank 有一个参数 method,默认为 'average',它会给出您所看到的结果。让我们将其更改为 'first'.

s1 = pd.Series([2,2,2,4])
s1.rank(pct=True,method='first')

输出:

0    0.25
1    0.50
2    0.75
3    1.00
dtype: float64