这个错误可能是因为在第29行代码中,weights[i]*corr[i]*data.iloc[:,i]返回的是一个DataFrame类型的数据,而在后面的计算中需要使用numpy数组。建议将第29行代码修改为:
composite_index = np.zeros(len(data))
for i in range(len(corr)):
composite_index += weights[i]*corr[i]*data.iloc[:,i].values
这样可以将DataFrame类型的数据转换成numpy数组,避免出现上述错误。