我有一个这样的数据帧
VOW3.DE.csv Rendite VOW3.DE.csv BAS.DE.csv Rendite BAS.DE.csv
0 119.744743 NaN 67.001991 NaN
1 118.470367 -0.010642 65.659218 -0.020041
2 115.557533 -0.024587 65.146057 -0.007816
3 114.374207 -0.010240 62.323662 -0.043324
4 115.512032 0.009948 61.887474 -0.006999
我想得到这样的数据帧:
Datum | Kurs BAS.DE || Rendite BAS.DE ||| Kurs VOW3.DE |||| Rendite VOW3.DE ||||| Rendite PF
0 2015-11-30 | 67.001991 | NaN | 119.744743 | NaN | NaN
1 2015-12-01 | 65.659218 | -0.020041 | 118.470367 | -0.010642 | -0.015342
2 2015-12-02 | 65.146057 | -0.007816 | 115.557533 | -0.024587 | -0.016201
3 2015-12-03 | 62.323662 | -0.043324 | 114.374207 | -0.010240 | -0.026782
4 2015-12-04 | 61.887474 | -0.006999 | 115.512032 | 0.009948 | 0.001475
我在上面通过手动添加新列(2个)创建了一个组合,但我想让它对n个股票起作用,从而创建一个包含n个项目的组合(第一个数据帧)。 因此,在第一个数据帧中,两支股票的收益(rendite)丢失
第一个数据帧的源代码是:
kurschart = pd.DataFrame()
zaehler = 0
for i in kurse:
x = dateinamen[zaehler]
kurschart[x] = i['Adj Close']
kurschart['Rendite ' + str(x)] = (i['Adj Close'] - i['Adj Close'].shift()) / i['Adj Close'].shift()
rendite = kurschart['Rendite ' + str(x)].values.tolist()
zaehler += 1
对于secound数据帧:
kurse = pd.DataFrame()
kurse['Datum'] = kurs1['Date']
kurse['|'] = '|'
kurse['Kurs ' + str((datensatz1))] = kurs1['Adj Close']
kurse['||'] = '|'
kurse['Rendite ' + str(datensatz1)] = (kurs1['Adj Close'] - kurs1['Adj Close'].shift()) / kurs1['Adj Close'].shift()
kurse['|||'] = '|'
kurse['Kurs ' + str((datensatz2))] = kurs2['Adj Close']
kurse['||||'] = '|'
kurse['Rendite ' + str(datensatz2)] = (kurs2['Adj Close'] - kurs2['Adj Close'].shift()) / kurs2['Adj Close'].shift()
kurse['|||||'] = '|'
kurse['Rendite PF'] = (0.5*kurse['Rendite ' + str(datensatz1)] + 0.5 * kurse['Rendite ' + str(datensatz2)])
所以问题是:如何在第一个数据帧中添加投资组合回报? 我必须总结每一个“Rendite”-n个股票的柱。所以PF返回应该是列2+4+6+8
从系数0.5,我想你是在算术上平均回报。您可以按如下方式执行此操作:
如果在以下测试数据上执行该操作:
你会得到:
相关问题 更多 >
编程相关推荐