在 for 循环中附加带有新键和值的字典
Appending dictionary with new keys and values in for loop
我目前正在尝试循环遍历数据框以进行线性回归。每次迭代后,我想保存当前列名和生成的 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
我目前正在尝试循环遍历数据框以进行线性回归。每次迭代后,我想保存当前列名和生成的 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