我希望即使在 Python 中具有相同的值也能获得唯一的百分位数
例如,以下情况按预期提供输出。
案例1
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
没有简单的函数可以做到这一点。 虽然我明白你想做什么,但这不是百分位分数。 事实上,您在此处显示的是百分比排名,与百分位数不同。
为了获得您想要的功能,我相信您必须自己对值进行分组和计算。