For循环:不能将序列乘以'

2022-12-01 04:58:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用下面的代码来获取一组投资组合(都包含在sheetnames中)的绩效:每个单一资产策略的绩效和总回报。为此,我尝试将每个I投资组合(数据[I])的每日权重乘以相关指数的每日资产表现——两个矩阵都是250行x 47列

我无法绕过错误“不能将序列乘以‘float’类型的非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行代码。你知道吗

任何形式的帮助都将不胜感激!你知道吗

非常感谢

亚瑟


Tags: 数据代码字典错误序列矩阵资产指数策略perftotal权重taacumprodsheetnames