Pandas - 数据相关性
寻找关系
Pandas 模块的一个强大之处在于 corr()
方法。
corr()
方法计算数据集中每列之间的关系。
本页的示例使用了一个名为 'data.csv' 的 CSV 文件。
示例
显示列之间的关系
df.corr()
自己动手试一试 »
结果
Duration Pulse Maxpulse Calories Duration 1.000000 -0.155408 0.009403 0.922721 Pulse -0.155408 1.000000 0.786535 0.025120 Maxpulse 0.009403 0.786535 1.000000 0.203814 Calories 0.922721 0.025120 0.203814 1.000000
注意: corr()
方法会忽略“非数字”列。
结果解释
corr()
方法的结果是一个包含大量数字的表格,这些数字表示两列之间的关系有多紧密。
该数字的范围从 -1 到 1。
1 表示 1 对 1 的关系(完美相关),对于这个数据集,第一列的值增加时,另一列的值也随之增加。
0.9 也是一个很好的关系,如果您增加一个值,另一个值很可能也会增加。
-0.9 的关系和 0.9 一样好,但如果您增加一个值,另一个值很可能反而会下降。
0.2 表示关系不好,这意味着如果一个值增加,另一个值不一定会跟着改变。
什么是好的相关性? 这取决于具体用途,但我认为可以安全地说,您至少需要 0.6
(或 -0.6
)才能称之为好的相关性。
完美相关
我们可以看到,“Duration”和“Duration”得到了 1.000000
这个数字,这是有意义的,每一列本身总是与自己有完美的关系。
良好的相关性
“Duration”和“Calories”之间有 0.922721
的相关性,这是一个非常好的相关性,我们可以预测,您锻炼的时间越长,燃烧的卡路里就越多,反之亦然:如果您燃烧了很多卡路里,您可能进行了一次长时间的锻炼。
糟糕的相关性
“Duration”和“Maxpulse”之间有 0.009403
的相关性,这是一个非常糟糕的相关性,这意味着我们不能仅通过锻炼时长来预测最大脉搏数,反之亦然。