猿问

Python 从返回中创建索引

我有一个投资组合回报的数据框:


date          Portfolio %

30/11/2001     4.8

31/12/2001    -0.7

31/01/2002     1.3

28/02/2002    -1.4

29/03/2002     3.3

我需要创建一个回报指数,但要做到这一点,我需要有一个 1.0 的起始数字,并且公式引用了前一行。输出应如下所示:


date          Portfolio %   Index

               1.0          NaN

30/11/2001     4.8          1.048          

31/12/2001    -0.7          1.040

31/01/2002     1.3          1.054

28/02/2002    -1.4          1.039

29/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。然而,它从未得到完整的回答。


一只萌萌小番薯
浏览 116回答 1
1回答

慕的地8271018

使用, Series.div,Series.add连同Series.cumprod:df['Index'] = df['Portfolio %'].div(100).add(1).cumprod()结果:# print(df)         date  Portfolio %     Index0  30/11/2001          4.8  1.0480001  31/12/2001         -0.7  1.0406642  31/01/2002          1.3  1.0541933  28/02/2002         -1.4  1.0394344  29/03/2002          3.3  1.073735
随时随地看视频慕课网APP

相关分类

Python
我要回答