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

Python 在for循环中附加具有新键和值的字典,python,regression,Python,Regression,我目前正在尝试通过线性回归的数据帧进行循环。在每次迭代之后,我想保存当前列名和结果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)

我目前正在尝试通过线性回归的数据帧进行循环。在每次迭代之后,我想保存当前列名和结果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\u type\u 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

在外部声明一个字典,并在迭代过程中追加该值。