相对五分位数

时间:2018-06-25 22:24:07

标签: python pandas

我的df

      Date       AAPL      NFLX       INTC    AAPL_Ret   NFLX_Ret   INTC_Ret
0 2008-01-31  27.834286  3.764286  25.350000       
1 2008-02-29  27.847143  3.724286  24.670000   -0.07     0.25       -0.05     
2 2008-03-31  25.721428  3.515714  22.670000    0.15     0.10       0.06  
3 2008-04-30  25.377142  3.554286  22.879999    etc
4 2008-05-31  24.464285  3.328571  22.260000

我想计算rowsdf上的股票收益的五分位数。我以为也许可以在公式中将pd.qcutaxis=1之类的东西一起使用,但是该方法不会采用这样的参数。有什么想法吗?

感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

您可以使用“ .quantile”方法:

quintiles = df[['AAPL','NFLX','INTC']].quantile(q=[0.2,0.4,0.6,0.8])
quintiles = quintiles.to_dict()

答案 1 :(得分:0)

嗯,好的。

所以你想要这个:

def QuantScore(x,p,d):
    if x <= d[p][0.25]:
        return 4
    elif x <= d[p][0.50]:
        return 3
    elif x <= d[p][0.75]: 
        return 2
    else:
        return 1

df['AAPL_quartile'] = df['AAPL'].apply(QuantScore, args=('AAPL',quintiles ,))