0

次の式を計算したいと思います。

    NVI(t) = NVI(t-1) + ROC(t)*NVI(t-1)

両方ともNVI同じROC長さSeriesです。

これが for ループなしで実行できるかどうかはわかりません。

=============================================

多分私は前にはっきりしていませんでした.NVI(0)= 100しかなく、ROCはシリーズであり、上記の式からNVI(1 ... t)シリーズを徐々に生成する必要があります.

4

2 に答える 2

0

for ループを使用できます。

import numpy as np
from pandas import DataFrame, Series

ROC = Series(np.random.randn(10))
NVI = Series(np.zeros(len(ROC)), index=ROC.index)
NVI[0] = 100
for ii in range(1, len(ROC)):
    NVI[ii] = NVI[ii-1]*(1 + ROC[ii])
DataFrame({'NVI':NVI, 'ROC':ROC})

どちらが与える


Out[163]: 
        NVI       ROC
0   100.000000 -0.671116
1   175.200037  0.752000
2   190.944391  0.089865
3   213.050742  0.115774
4   285.011333  0.337763
5   654.873638  1.297711
6  1970.284505  2.008648
7  3738.327575  0.897354
8 -3640.266184 -1.973769
9 -8171.676652  1.244802
于 2013-08-03T14:55:27.340 に答える