为了账号安全,请及时绑定邮箱和手机立即绑定

Python 从返回中创建索引

Python 从返回中创建索引

一只萌萌小番薯 2023-02-22 15:15:37
我有一个投资组合回报的数据框: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


查看完整回答
反对 回复 2023-02-22
  • 1 回答
  • 0 关注
  • 78 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信