Python根据返回创建索引

Python根据返回创建索引,python,pandas,dataframe,Python,Pandas,Dataframe,我有一个投资组合回报的数据框架: 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

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

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]
我的问题是:

我无法获取起始变量 我无法获取引用前一行的公式。 我相信这和这篇文章是同一个问题。但是,它从未得到完全回答。

使用,以及:

结果:

# 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
使用,连同:

结果:

# 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

你真的希望第一行是1.0 NaN,因为你没有为那一行指定任何索引。只要30/11/2001的结果索引=1.048,我真的不介意。你真的希望第一行是1.0 NaN,因为你没有为那一行指定任何索引。只要30/11/2001的结果索引=1.048,我真的不介意。