如何通过遍历每一行在Python中创建相关矩阵?


相关矩阵是一个包含许多变量的相关系数的表格。表格中的每个单元格表示两个变量之间的相关性。值可能介于 -1 和 1 之间。相关矩阵用于数据汇总、高级分析诊断以及作为更复杂研究的输入。

相关矩阵用于表示数据集中变量之间的关系。它是一种帮助程序员分析数据组件之间关系的矩阵。它表示 0 到 1 之间的相关系数。

正值表示良好的相关性,负值表示弱/低相关性,值为零 (0) 表示给定变量集之间没有依赖关系。

回归分析和相关矩阵显示了以下观察结果:

  • 识别数据集中自变量之间的关系。

  • 帮助从数据集中选择重要且非冗余的变量。

  • 这仅适用于数值型或连续型变量。

在本文中,我们将向您展示如何使用 Python 创建相关矩阵。

假设我们已经获取了一个名为 **starbucksMenu.csv** 的 CSV 文件,其中包含一些随机数据。我们需要为数据集中指定的列创建相关矩阵并绘制相关矩阵。

输入文件数据

starbucksMenu.csv

商品名称 卡路里 脂肪 碳水化合物 纤维 蛋白质
             
酷莱姆星巴克清爽™ 45 0 11 0 0 10
Evolution Fresh™ 有机姜味青柠汽水 80 0 18 1 0 10
冰咖啡 60 0 14 1 0 10
Tazo® 瓶装莓花白茶 0 0 0 0 0 0
Tazo® 瓶装黑莓 130 2.5 21 0 5 65
Tazo® 瓶装巨型桃子 140 2.5 23 0 5 90
Tazo® 瓶装冰镇百香果 130 2.5 21 0 5 65
Tazo® 瓶装李子石榴 80 0 19 0 0 10
Tazo® 瓶装塔佐莓 60 0 15 0 0 10
Tazo® 瓶装白蔓越莓 150 0 38 0 0 15

创建相关矩阵

我们将绘制数据集的三列(它们是独立的连续变量)的相关矩阵。

  • 碳水化合物
  • 蛋白质

算法(步骤)

以下是执行所需任务的算法/步骤:

  • 导入 os、pandas、NumPy 和 seaborn 库。

  • 使用 **read_csv()** 函数读取给定的 CSV 文件(将 CSV 文件加载为 pandas 数据框)。

  • 从给定的数据集中创建必须创建相关矩阵的列列表。

  • 使用 **corr()** 函数创建相关矩阵(它计算数据框中所有列的成对相关性。任何 **na(空)** 值都会自动过滤掉。对于数据框中的任何非数值数据类型列,它都会被丢弃)。

  • 打印数据集指定列的相关矩阵。

  • 使用 seaborn 库的 **heatmap()** 函数绘制相关矩阵(对于要绘制的每个值,热图具有指示相同颜色几种阴影的值。图表中较深的颜色通常表示比较浅的颜色更高的值。同样可以为明显不同的值使用完全不同的颜色)。

将数据集导入 Pandas 数据框

现在,我们首先将任何样本数据集(这里我们使用 starbucksMenu.csv)导入 pandas 数据框并打印它。

示例 1

# Import pandas module as pd using the import keyword import pandas as pd # Reading a dataset givenDataset = pd.read_csv('starbucksMenu.csv') print(givenDataset)

输出

商品名称 卡路里 脂肪 碳水化合物 纤维 蛋白质
             
酷莱姆星巴克清爽™ 45 0 11 0 0 10
Evolution Fresh™ 有机姜味青柠汽水 80 0 18 1 0 10
冰咖啡 60 0 14 1 0 10
Tazo® 瓶装莓花白茶 0 0 0 0 0 0
Tazo® 瓶装黑莓 130 2.5 21 0 5 65
Tazo® 瓶装巨型桃子 140 2.5 23 0 5 90
Tazo® 瓶装冰镇百香果 130 2.5 21 0 5 65
Tazo® 瓶装李子石榴 80 0 19 0 0 10
Tazo® 瓶装塔佐莓 60 0 15 0 0 10
Tazo® 瓶装白蔓越莓 150 0 38 0 0 15

导入数据集后创建相关矩阵

以下程序演示了如何为给定数据集创建相关矩阵、打印它们以及绘制相关矩阵:

示例 2

import os # Importing pandas module import pandas as pd import numpy as np import seaborn # Reading a dataset givenDataset = pd.read_csv('starbucksMenu.csv') # Assigning the list of columns from the dataset numericColumns = ['Carb','Protein','Sodium'] # Creating a correlation matrix correlationMatrix = givenDataset.loc[:,numericColumns].corr() # Printing the correlation matrix. print(correlationMatrix) # Displaying the correlation matrix seaborn.heatmap(correlationMatrix, annot=True)

输出

执行上述程序后,将生成以下输出:

在本教程中,您学习了如何使用 Python 和 Pandas 计算相关矩阵。此外,您还学习了如何使用 Pandas corr() 方法生成相关矩阵,以及如何使用 Seaborn 库的 heatmap 函数显示矩阵,从而可以更轻松地直观了解数据。

更新于:2022年8月10日

3000+ 次浏览

启动您的职业生涯

完成课程获得认证

开始
广告