将百分位数值分配给python

时间:2017-08-08 04:03:15

标签: python pandas dataframe

我有700多种股票的清单:

excesslist.nlargest(5)
OLED    4.551521
NBIX    4.538618
ALNY    4.526540
AMD     4.502308
IONS    4.484968
...

我想给每个股票一个值(1/100百分位数)。例如,前1%获得0.99分,前2%获得0.98分...最低1%获得.01。

无法使用np.percentile来增加ea值,只是不得不手动执行,并且不确定如何分配值:

In: np.percentile(excesslist,[0,1,2,3])

Out: array([ 0.72803527,  0.78873332,  0.83364907,  0.85492285])

预期输出为列表的e / 1/100百分位数分配一个公共值

2 个答案:

答案 0 :(得分:3)

初始化数据框,然后使用df.qcut

df = pd.DataFrame({'Stocks' : excesslist})
df['Percentile'] = pd.qcut(df.Stocks, 100, labels=False) / 100

答案 1 :(得分:3)

使用pct=Truepd.Series.rank方法中的pd.DataFrame.rank参数。

excesslist.rank(pct=True)
相关问题