【问题标题】:How to multiply value in previous row with a value from current row如何将前一行中的值与当前行中的值相乘
【发布时间】:2020-06-29 05:06:28
【问题描述】:

我似乎找不到解决以下问题的方法。我有以下数据框:

Daily Return(%)       
   -0.1                   
    0.1                   
    0.2                   
   -.01                   
    .04                   
   0.12                   

我想计算投资组合价值。我的投资组合的初始值为 500,计算后我应该有以下数据框

Daily Return(%)     Portfolio Value     
       -0.1                   450
        0.1                   495
        0.2                   594
       -.01                   588
        .04                   611
       0.12                   684

投资组合价值计算公式为500+(500x(-0.1))+(450x0.1)+(495x0.2)....

我正在努力将上面的公式放入代码中。任何帮助或指导将不胜感激

【问题讨论】:

  • 您想通过您给出的公式计算复合收益吗?因为在最后一句话中你说你需要计算投资组合价值(已经给出)。另外,您说 df 只有每日回报。所以我假设投资组合价值在一个单独的列表中?
  • @55abhilash,对不起,我的帖子令人困惑。我编辑了它。我的数据框中只有每日回报率 (%),我需要计算投资组合价值。我的投资组合的起始值为 500

标签: python pandas dataframe finance


【解决方案1】:

让我们add 一个然后cumprod

df['Daily Return(%)'].add(1).cumprod()*500
0    450.000000
1    495.000000
2    594.000000
3    588.060000
4    611.582400
5    684.972288
Name: Daily, dtype: float64
df['p Value'] = df['Daily Return(%)'].add(1).cumprod()*500

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-05-03
  • 2017-11-07
  • 2016-01-17
  • 2015-06-04
  • 1970-01-01
  • 2021-03-26
  • 1970-01-01
相关资源
最近更新 更多