繁体   English   中英

为 pandas 系列的每个值分配百分位数

[英]Assigning percentile to each value of pandas series

是否有直接开箱即用的方式为 pandas 系列的每个值分配百分位数?

我通过排名和重新调整来实现这个计算,就像这里:

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等......)

有没有明确的计算方法?

您可以使用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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM