在for循环中追加具有新键和值的字典



我目前正在尝试循环通过线性回归的数据帧。每次迭代后,我想将当前列名和由此产生的Adj.R平方值保存在字典中:

import statsmodels.api as sm
for columns in [x for x in var_sel.columns if x != 'price']:

fit_d = {}

Y = var_sel['price']
X = var_sel[columns]
X = sm.add_constant(X)
model = sm.OLS(Y,X, missing = 'drop').fit()

fit_d[columns] = model.rsquared

但当我打印字典时,它只输出{'room_type_Shared room': 0.0003039648861731248},这是数据帧的最后一列。如何在字典中添加每个迭代结果?

您必须在for循环之外声明字典。在上面的代码中,每次循环运行时都要重新解析字典。

import statsmodels.api as sm
fit_d = {}
for columns in [x for x in var_sel.columns if x != 'price']:

Y = var_sel['price']
X = var_sel[columns]
X = sm.add_constant(X)
model = sm.OLS(Y,X, missing = 'drop').fit()

fit_d[columns] = model.rsquared

最新更新