Pandas相关性分析

1.相关性分析定义

在 Pandas 中,数据相关性分析是通过计算不同变量之间的相关系数来了解它们之间的关系。在 Pandas 中,数据相关性是一项重要的分析任务,它帮助我们理解数据中各个变量之间的关系。

2.使用 corr() 方法计算数据集中每列之间的关系

复制代码
df.corr(method='pearson', min_periods=1)

(1)method (可选): 字符串类型,用于指定计算相关系数方法。默认是 'pearson',还可以选择 'kendall'(Kendall Tau 相关系数)或 'spearman'(Spearman 秩相关系数)。

(2)min_periods (可选): 表示计算相关系数时所需的最小观测值数量。默认值是 1,即只要有至少一个非空值就会进行计算。如果指定min_periods,并在某些列中的非空值数量小于该值,则相应列的相关系数将被设为 NaN。

(3)df.corr() 方法返回一个相关系数矩阵,矩阵的行和列对应数据框的列名,矩阵的元素是对应列之间的相关系数。

3.常见的相关性系数

(1)Pearson 相关系数: 皮尔逊相关系数,用于衡量两个变量间的线性关系强度和方向。取值范围在 -1 到 1 之间,-1 表示完全负相关,1 表示完全正相关,0 表示无线性相关。可以使用 corr() 方法计算数据框中各列之间的 Pearson 相关系数。

(2)Spearman 相关系数:即斯皮尔曼相关系数,是一种秩相关系数。用于衡量两个变量之间的单调关系,即不一定是线性关系。通过比较变量的秩次来计算相关性。使用 corr(method='spearman') 方法计算数据框中各列之间的 Spearman 相关系数。

4.Pearson 相关系数

数据集是线性相关的,因此 Pearson 相关系数矩阵对角线上的值为 1,而非对角线上的值为 -1 表示完全负相关。

复制代码
import pandas as pd

# 创建一个示例数据框
data = {'A': [1, 2, 3, 4, 5], 'B': [5, 4, 3, 2, 1]}
df = pd.DataFrame(data)

# 计算 Pearson 相关系数
correlation_matrix = df.corr()
print(correlation_matrix)

5.Spearman秩相关系数

Spearman 相关系数矩阵的结果与 Pearson 相关系数矩阵相同,因为这两个变量之间是完全的单调负相关。

复制代码
import pandas as pd

# 创建一个示例数据框
data = {'A': [1, 2, 3, 4, 5], 'B': [5, 4, 3, 2, 1]}
df = pd.DataFrame(data)

# 计算 Spearman 相关系数
spearman_correlation_matrix = df.corr(method='spearman')
print(spearman_correlation_matrix)

6.可视化相关性

使用 Python 的 Seaborn 库, Seaborn 是基于 Matplotlib 的数据可视化库,专注于统计图形的绘制,旨在简化数据可视化的过程。Seaborn 提供了简单高级接口,可以轻松绘制各种统计图形,包括散点图、折线图、柱状图、热图等,而且具有良好的美学效果。

复制代码
!pip install seaborn
复制代码
import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd

# 创建一个示例数据框
data = {'A': [1, 2, 3, 4, 5], 'B': [5, 4, 3, 2, 1]}
df = pd.DataFrame(data)

# 计算 Pearson 相关系数
correlation_matrix = df.corr()

# 使用热图可视化 Pearson 相关系数
sns.heatmap(correlation_matrix, annot=True, cmap='coolwarm', fmt=".2f")
plt.show()
相关推荐
tellmewhoisi9 分钟前
深度学习8:神经网络学习5:随机梯度下降法(基本概念,基本原理)
深度学习·神经网络·学习
专注仿真12 分钟前
多智能体强化学习实战:从 Dec-POMDP 到 QMIX/MADDPG/MAPPO 的可运行 PyTorch 实现
人工智能·pytorch·python
不是万能的豆学长4 小时前
filetidy 文件整理助手:一键归类 + 规范重命名(Python 零依赖单文件工具)
大数据·开发语言·python·技术美术
gCode Teacher 格码致知5 小时前
Pandas教学-18:number与numeric的区别
python·pandas
梦想不只是梦与想8 小时前
Python 中subprocess 模块:执行外部命令
python·subprocess·调用外部命令
懂点Tech8 小时前
ctfshow MISC入门图片篇(信息附加):misc41解题思路
开发语言·python
Canmag 兴隆磁性9 小时前
中大型钕铁硼产品的磁通测量与自动分选:一条产线自动化的工程实现思路
运维·学习·自动化·永磁材料
小黄人软件11 小时前
桌面需要整理吗?有工具自动分类
学习
老衲不用@飘柔12 小时前
SFP与SFP+学习知识整理
学习
X54先生(人文科技)12 小时前
社会嵌入式终身学习机器与修复时代-ELR架构和技术演化探讨
人工智能·深度学习·学习·架构·开源协议