我希望获得独特的百分位数,即使是相同的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]
如果有办法实现这一点,请告诉我。
答案 0 :(得分:3)
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
答案 1 :(得分:0)
没有简单的功能可以做到这一点。虽然我明白你想做什么,但不是百分位数。事实上,您在此处显示的是百分比等级, 与百分位数相同。
为了获得您想要的功能,我相信您必须自己对这些值进行分组和计算。