pandas 如何在Python中显示每个变量的相关系数?

fivyi3re  于 2023-01-07  发布在  Python
关注(0)|答案(3)|浏览(158)

我运行了一个线性回归模型并得到了系数。如何在系数旁边打印变量?

df = pd.read_csv('data', sep=";")
reg = linear_model.LinearRegression()
reg.fit(df[["age", "area", "bedrooms"]],df.price)
print(reg.coef_)

Output 

[ 6.55199614e-02 -1.86317709e+00  2.20902007e-02]

我希望输出为

age coef: 6.55199614e-02
area coef: -1.86317709e+00
bedroom coef: 2.20902007e-02
kq0g1dla

kq0g1dla1#

我的首选方法是pd.Series(reg.coef_,index=df.columns),然后打印是免费的。而且它更容易与pd.Series工作的其他计算,通过pd.concat的模型比较等。

5cnsuln7

5cnsuln72#

如果你只想把变量打印在系数旁边,你可以这样写:

df = pd.read_csv('data', sep=";")
reg = linear_model.LinearRegression()

colnames = ["age", "area", "bedrooms"]

reg.fit(df[colnames],df.price)

coefs_map = dict(zip(colnames, reg.coef_))

for k in coefs_map.keys():
    print(f"{k}: {res[k]}")
tnkciper

tnkciper3#

我相信'\n'.join(col+' coef: '+str(coef) for (col, coef) in zip(df.columns, reg.coef_))可以满足您的要求。但是,我推荐以下代码,因为它提供的输出更容易阅读:

pad_length = 8+max(len(col) for col in df.columns)
output = '\n'.join((col+' coef: ').ljust(pad_length)+str(coef) for 
    (col, coef) in zip(df.columns, reg.coef_))

另外,所有这些都假设你的列名已经是字符串了,如果不是,你应该用str(col)替换col

相关问题