我的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
我想计算rows
中df
上的股票收益的五分位数。我以为也许可以在公式中将pd.qcut
与axis=1
之类的东西一起使用,但是该方法不会采用这样的参数。有什么想法吗?
感谢您的帮助!
答案 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 ,))