即使在python中具有相同的值,也具有独特的百分位数

时间:2017-06-16 19:10:16

标签: python python-2.7 pandas series percentile

我希望获得独特的百分位数,即使是相同的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]

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

2 个答案:

答案 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)

没有简单的功能可以做到这一点。虽然我明白你想做什么,但是百分位数。事实上,您在此处显示的是百分比等级, 与百分位数相同。

为了获得您想要的功能,我相信您必须自己对这些值进行分组和计算。