Pandas 中,可以使用 DataFrame.corr() 方法计算各列之间的相关性,常用于探索数值型变量之间的线性关系,返回值范围在 -1 到 1 之间,其中 1 表示完全正相关,-1 表示完全负相关,0 表示无线性相关,是数据分析中进行特征筛选、变量关系判断的重要工具。本文主要介绍Python Pandas 数据的相关性。

1、DataFrame.corr()

corr() 仅计算数值型列,会自动忽略字符串等非数值列,默认使用 皮尔逊相关系数(Pearson)。

import pandas as pd

# 构造示例数据
data = {
    'Duration': [60, 60, 45, 45, 60, 60, 60, 30, 
    30, 60],
    'Calories': [405, 390, 290, 250, 500, 480,
    450, 240, 250, 480],
    'Maxpulse': [110, 117, 109, 102, 150, 140, 
    130, 100, 105, 145],
    'Pulse': [100, 103, 100, 98, 130, 128, 125, 
    90, 95, 135],
    'Steps': [3000, 3200, 2600, 2400, 4000,
    3800, 3700, 2000, 2100, 3900]
}

# 创建 DataFrame
df = pd.DataFrame(data)
correlation_matrix = df.corr()
print(correlation_matrix)

2、相关性结果说明

corr() 方法返回的是一个对称矩阵,每个单元格表示两个数值列之间的相关系数,取值范围在 -1 到 1 之间。

相关系数范围说明
1.0完全正相关,两列完全一致变动
0.9 ~ 1.0强正相关,一列增加,
另一列也显著增加
0.6 ~ 0.9中等正相关,有明显趋势关联
0.2 ~ 0.6弱相关或可忽略
-0.6 ~ -1.0负相关,值越低,反向趋势越强
0 或接近 0无明显线性关系

Pandas 的 corr() 方法是数据探索阶段的重要工具,能快速揭示列与列之间的相关性程度。通过分析相关系数矩阵,开发者可以提前感知哪些特征具备预测性或冗余性,指导后续建模和特征选择等操作。

如需配合可视化展示相关性热力图,可使用 seabornheatmap 工具增强可读性。

推荐文档