在python中为长股票列表指定百分位值

在python中为长股票列表指定百分位值,python,pandas,dataframe,Python,Pandas,Dataframe,我有一份700多只股票的清单: excesslist.nlargest(5) OLED 4.551521 NBIX 4.538618 ALNY 4.526540 AMD 4.502308 IONS 4.484968 ... 我想给每只股票一个值(百分之一)。例如,前1%的人得分为.99,前2%的人得分为.98。。。最底层的1%将得到0.01 无法使用np.percentile来增加ea值,只能手动执行,并且不确定如何分配值: In: np.percentile(

我有一份700多只股票的清单:

excesslist.nlargest(5)
OLED    4.551521
NBIX    4.538618
ALNY    4.526540
AMD     4.502308
IONS    4.484968
...
我想给每只股票一个值(百分之一)。例如,前1%的人得分为.99,前2%的人得分为.98。。。最底层的1%将得到0.01

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

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

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

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

初始化数据帧,然后使用:


初始化数据帧,然后使用:


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

excesslist.rank(pct=True)

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

excesslist.rank(pct=True)

好的,这很有效-但是我如何给百分位数赋值呢?@thomas.mac试试
df['Percentile']/=100
?这是一个很好的答案+1感谢很多很容易理解的问题,我正在使用qcut创建一个df,并在中得到一个奇怪的序列return@thomas.mac很乐意帮忙!好的,这很有效-但是我如何给百分位数赋值呢?@thomas.mac试试
df['Percentile']/=100
?这是一个很好的答案+1感谢很多很容易理解的问题,我正在使用qcut创建一个df,并在中得到一个奇怪的序列return@thomas.mac很乐意帮忙!假设它是一个系列。。。但是+1系列和数据帧都有这种方法。我假设
excesslist
必须是一个
pd.Series
考虑到OP-use
nlargest
没有
col
参数。
excesslist.rank(pct=True)。四舍五入(2)
假设它是一个Series。。。但是+1系列和数据帧都有这种方法。我假设
excesslist
必须是一个
pd.Series
,考虑到OP使用
nlargest
,没有
col
参数。
excesslist.rank(pct=True)。四舍五入(2)