在python中为长股票列表指定百分位值
我有一份700多只股票的清单:在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(
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-usenlargest
没有col
参数。excesslist.rank(pct=True)。四舍五入(2)
假设它是一个Series。。。但是+1系列和数据帧都有这种方法。我假设excesslist
必须是一个pd.Series
,考虑到OP使用nlargest
,没有col
参数。excesslist.rank(pct=True)。四舍五入(2)