我想创建一个多级行索引,其级别0是我命名为environ的列表中列表元素的名称(请参见下面的代码,例如regime1)。该行索引的第二级是参数名(例如alpha[1])。列索引是与数据相匹配的模型类型的名称(例如模型1)。最终目标是创建一个循环,在其中我可以传递与数据系列关联的名称列表,系列的标签成为行多级索引的第一级,第二级是参数名称,列索引是适合数据系列的模型的名称
进口:
from arch import arch_model
from collections import OrderedDict
import numpy as np
import pandas as pd
import datetime as dt
import arch.data.sp500
下面是我希望输出的样子,如果我打印代码循环的结果
model_1 model_2
Regime 1 alpha[1] 0.102150 0.099596
beta[1] 0.885206 0.899932
mu 0.056353 0.066129
nu NaN 6.607229
omega 0.017507 0.008664
model_1 model_2
Regime_2 alpha[1] 0.102150 0.099596
beta[1] 0.885206 0.899932
mu 0.056353 0.066129
nu NaN 6.607229
omega 0.017507 0.008664
下面的代码是我最近一次尝试获取上述所需输出的代码:
environ = ['regime1','regime2']
data = arch.data.sp500.load()
market = data['Adj Close']
returns = 100 * market.pct_change().dropna()
returns2 = 100 * market.pct_change().dropna()
datasets = [returns,returns2]
for i,j in zip(environ,datasets):
model1 = arch_model(datasets[j]).fit(disp='off')
model2 = arch_model(datasets[j], dist='t').fit(disp='off')
comparison = pd.DataFrame( OrderedDict((('model_1',model1.params), ('model_2', model2.params))))
print(comparison)
我收到的当前错误:
TypeError: list indices must be integers or slices, not Series
我不相信纠正上面的错误能解决我的问题。我想返回一个多级数据帧,它看起来类似于上面所需的输出
目前没有回答
相关问题 更多 >
编程相关推荐