我对pandas/data-frame编程还不熟悉,还没有掌握实现等效的简单循环。在
我基本上要实现的是这样的:
counter = 0
for port in portfolios:
for bin in bins:
value[port[counter +1, bin]]
= port[counter + 1, bin] * port[counter, bin]
counter += 1
实际上,使用下面的一个示例表,对于每个portfolio端口中的每个bin,我尝试将rebal_wgt [port=i,bin=j]
乘以rebal_wgt[port=i-1,bin=j]
。我想对所有公文包端口(共有11个)和每个公文包端口中的所有bin都这样做,这样每个公文包的对应bin将乘以以前的公文包对应的bin(例如port5 bin 1 rebal_weight * port 4 bin 1's rebal_weight
等)
事实上,我认为我要达到的是一个累积的结果。
从上面看
因此,任何值[port,bin]都可以表示为具有值[port-1,bin]的乘积。因此,从value[0,bin]开始,可以进行累加积,从而得出每个bin的连续投资组合的值。这就是我想做的!不幸的是,我不认为下面给出的第一个答案能做到这一点,因为它并没有为每个bin循环投资组合,它似乎在每个投资组合中循环使用bin。非常感谢任何帮助!下面是一个示例数据表,忽略累计和存量。在
port bin cum_ret_sum stocks rebal_wgt
0 0 0 4.067563e+03 216 1.883131e+01
1 0 1 1.300282e+04 213 6.104612e+01
2 0 2 1.426061e+04 214 6.663837e+01
3 0 3 4.904957e+02 205 2.392662e+00
4 0 4 1.100993e+04 209 5.267908e+01
5 0 5 4.630904e+03 208 2.226396e+01
6 0 6 1.019425e+04 215 4.741514e+01
7 0 7 2.249585e+04 213 1.056143e+02
8 0 8 8.831653e+03 214 4.126941e+01
9 0 9 3.098015e+05 212 1.461328e+03
10 1 0 1.881155e+00 267 7.045525e-03
11 1 1 7.486650e+00 280 2.673804e-02
12 1 2 4.492010e+00 268 1.676123e-02
13 1 3 1.191500e+01 273 4.364468e-02
14 1 4 4.388776e+00 266 1.649916e-02
15 1 5 1.384601e+01 270 5.128153e-02
bin=0的示例输出(希望所有bin=0到bin)
port bin rebal_wgt rebal_wgt(port[counter,bin] * port[counter - 1, bin])
0 0 18.83131173675383 18.83131173675383
0 1 61.04612379316069
0 2 66.63837376523843
0 3 2.3926618103462602
0 4 52.67907609709447
0 5 22.26396127204363
0 6 47.415137683181634
0 7 105.61432751079496
0 8 41.26940808193825
0 9 1461.3276714958988
1 0 0.0070455247063908755 0.13267647209504757
1 1 0.026738035817712412
1 2 0.01676122975460385
1 3 0.04364467915381678
1 4 0.016499159440430355
1 5 0.051281526270788164
1 6 0.04977016623588389
1 7 0.0645014820724396
1 8 0.1438106018214078
1 9 0.0340451076286303
2 0 5.1196753262692285 0.6792604605614628
2 1 0.014870173557215314
2 2 3.263374203937453
2 3 73.32640040253595
2 4 3.915173886409575
2 5 67.46028895344207
2 6 7.654613865824991
2 7 12.837204120226547
2 8 2983.065107673766
2 9 0.4204701203425892
3 0 71.16936245719319 48.34253392053873
实际期望输出:
port bin rebal_wgt rebal_wgt(port[counter,bin] * port[counter - 1, bin])
0 0 18.83131173675383 18.83131173675383
0 1 61.04612379316069 61.04612379316069
0 2 66.63837376523843 66.63837376523843
0 3 2.3926618103462602 2.3926618103462602
0 4 52.67907609709447 52.67907609709447
0 5 22.26396127204363 22.26396127204363
0 6 47.415137683181634 47.415137683181634
0 7 105.61432751079496 105.61432751079496
0 8 41.26940808193825 41.26940808193825
0 9 1461.3276714958988 1461.3276714958988
1 0 0.0070455247063908755 0.13267647209504757
1 1 0.026738035817712412 1.6322534445140364
1 2 0.01676122975460385 1.116941093152327
1 3 0.04364467915381678 0.10442695703615294
1 4 0.016499159440430355 0.8691604757005253
1 5 0.051281526270788164 1.1417299148641158
1 6 0.04977016623588389 2.3598592845892727
1 7 0.0645014820724396 6.812280652530306
1 8 0.1438106018214078 5.934978413076811
1 9 0.0340451076286303 49.75105785677358
2 0 5.1196753262692285 0.6792604605614628
2 1 0.014870173557215314 0.024271892009286238
2 2 3.263374203937453 3.6449967507110035
2 3 73.32640040253595 7.65725286445137
2 4 3.915173886409575 3.4029143975620206
2 5 67.46028895344207 77.02142996352207
2 6 7.654613865824991 18.06381160121289
2 7 12.837204120226547 87.45063726080163
2 8 2983.065107673766 17704.427018846454
2 9 0.4204701203425892 20.918833284208702
累计操作
相关问题 更多 >
编程相关推荐