如何找到float64中的一列与另一列的熊猫数据框的两列之间的相关性是object(string)

时间:2018-12-26 19:24:42

标签: python pandas data-science

就我而言,它介于天空条件和能见度之间

Skycondition visibility
 CLR.                 10SM
SCT103.              7SM

1 个答案:

答案 0 :(得分:1)

由于具有名义变量,因此实际上无法计算出相关性。但是,您可能会了解变量之间关系的强度的一种方法是为其定义虚拟变量并执行一系列多元线性回归。例如,假设您的数据位于一个名为data的数据框中,为清楚起见,我对其进行了重新格式化:

       Skycond   Vis
    0      CLR  10SM
    1   SCT103    7S

然后我们生成虚拟变量:

demo = pd.get_dummies(data)

       Skycond_CLR  Skycond_SCT103  vis_10SM    vis_7SM
    0            1               0         1          0
    1            0               1         0          1

最后拟合线性回归模型。在这里,我选择将Skycond_CLR与可见性变量进行比较:

from sklearn.preprocessing import LinearRegression

model.fit(demo[list(demo.columns[2:])],
          demo[demo.columns[0]])

print("Model slope:    ", model.coef_)
print("Model intercept:", model.intercept_)

哪个给:

Model slope:     [-0.33333333  0.33333333 -0.33333333]
Model intercept: 0.6666666666666666

当然,对于只有两个样本,回归并不能告诉您太多。随着您添加更多数据,梯度系数将开始表明与所选因变量的某种关系,这可以解释为相关性的替代。