我有以下代码,它采用数据帧HF的每一列并将其适合整个数据帧索引。然后,我感兴趣的是生成一个包含回归系数的数据帧Beta:
col_names = HF.columns
Betas = pd.DataFrame(columns= HF.columns, index = Index.columns)
for name in col_names:
lm = linear_model.LinearRegression()
hf = HF[name]
model = lm.fit(Index, hf)
Betas.loc[:][name] = lm.coef_
代码可以运行,但是我得到的是只有NaN值的Betas数据框。你能帮忙理解这个问题吗?谢谢
答案 0 :(得分:1)
问题在于,在.loc
之后,您将Betas
数据帧切片了两次,而您只需要使用相同的一组方括号来完成一次。
这应该是您的新--周期
for name in col_names:
lm = linear_model.LinearRegression()
hf = HF[name]
lm.fit(Index, hf)
Betas.loc[:, name] = lm.coef_
作为旁注,由于不必要,我删除了对model
的分配;您可以只在fit
对象上调用lm
方法。