我正在尝试使用以下代码来获取一组投资组合(全部包含在工作表名称中):每种单一资产策略的绩效和总回报。为此,我试图将每个i投资组合(Data [i])的每日权重乘以相关指数的每日资产表现 - 两个矩阵都是250行x 47列
我无法解决错误“无法将序列乘以'int'类型的非int”。我确实理解我试图用浮点数来增加字典,但是我试图在每次迭代中更改数组中的字典,但是它没有用。
Perf={}
Total_Perf={}
for i in sheetnames:
Perf[i]=Data[i]*TAA_Indices_Returns
Perf[i]=((1+Perf[i]).cumprod()-1)*100
Total_Perf[i]=DataFrame(((1+Perf[i].sum(axis=1)).cumprod()-1)*100,columns={'TAA Total Perf'})
我有大约40个不同的投资组合,并希望找到一种更优雅的方式,而不是编写40行代码。
任何形式的帮助都将受到高度赞赏!
非常感谢,
亚瑟