我有一个投资组合回报的数据框:date Portfolio %30/11/2001 4.831/12/2001 -0.731/01/2002 1.328/02/2002 -1.429/03/2002 3.3我需要创建一个回报指数,但要做到这一点,我需要有一个 1.0 的起始数字,并且公式引用了前一行。输出应如下所示:date Portfolio % Index 1.0 NaN30/11/2001 4.8 1.048 31/12/2001 -0.7 1.04031/01/2002 1.3 1.05428/02/2002 -1.4 1.03929/03/2002 3.3 1.073例如,第二个结果的公式是: 1.048*(1+-0.7/100) 我已经尝试了以下代码,但没有得到所需的结果。portfolio['Index'] = portfolio['Portfolio %'] / portfolio['Portfolio %'].iloc[0]我遇到的问题:我无法获得起始变量我无法获得引用前一行的公式。我相信这与这篇文章是同一个问题:Create and index from returns PANDAS。然而,它从未得到完整的回答。
1 回答
慕的地8271018
TA贡献1796条经验 获得超4个赞
使用, Series.div
,Series.add
连同Series.cumprod
:
df['Index'] = df['Portfolio %'].div(100).add(1).cumprod()
结果:
# print(df)
date Portfolio % Index
0 30/11/2001 4.8 1.048000
1 31/12/2001 -0.7 1.040664
2 31/01/2002 1.3 1.054193
3 28/02/2002 -1.4 1.039434
4 29/03/2002 3.3 1.073735
添加回答
举报
0/150
提交
取消