将百分比指定给熊猫系列的每个值

时间:2020-05-04 20:56:44

标签: python pandas series percentile

是否有直接使用的现成方法将百分位数分配给熊猫系列的每个值?

我正在通过排名和重新调整比例来实现此计算,例如:

values = pd.Series(np.random.normal(0,1,100))
percentiles = values.rank()/values.shape

例如系列:[0,2,4,2,10,8,6,1]

应接收百分位数:[0.125, 0.4375, 0.625, 0.4375, 1.0, 0.875, 0.75, 0.25]

但是,令我惊讶的是,没有针对该问题的本机解决方案(例如qcutquantile等)

有明确的计算方法吗?

1 个答案:

答案 0 :(得分:3)

您可以使用rank进行此操作,其中pct=True选项以percentile形式显示排名。

In [1551]: v = pd.Series([0,2,4,2,10,8,6,1])
In [1556]: v.rank(pct=True)                 
Out[1556]: 
0    0.1250
1    0.4375
2    0.6250
3    0.4375
4    1.0000
5    0.8750
6    0.7500
7    0.2500
dtype: float64