来自具有太多列的数据帧的 Python 散点矩阵

Posted

技术标签:

【中文标题】来自具有太多列的数据帧的 Python 散点矩阵【英文标题】:Python scatter matrices from dataframe with too many columns 【发布时间】:2020-11-29 08:52:57 【问题描述】:

我是 python 和数据科学的新手,我目前正在从事一个基于非常大的数据框的项目,该数据框有 75 列。我正在做一些数据探索,我想检查列之间可能存在的相关性。对于较小的数据帧,我知道我可以在数据帧上使用 pandas plotting.scatter_matrix() 来做到这一点。但是,在我的情况下,这会生成一个 75x75 矩阵——我什至无法可视化各个图。

另一种方法是创建 5 列的列表并多次使用 scatter_matrix,但这种方法会产生过多的分散矩阵。例如,如果有 15 列,则为:


import pandas as pd

df = pd.read_csv('dataset.csv')

list1 = [df.iloc[:, i] for i in range(5)]
list2 = [df.iloc[:, i+5] for i in range(5)]
list3 = [df.iloc[:, i+10] for i in range(5)]

pd.plotting.scatter_matrix(df_acoes[list1])
pd.plotting.scatter_matrix(df_acoes[list2])
pd.plotting.scatter_matrix(df_acoes[list3])

为了在 75 列中使用相同的方法,我必须继续直到 list15。这看起来非常低效。我想知道是否有更好的方法来探索我的数据集中的相关性。

【问题讨论】:

请先尝试一下,然后用代码发布您的问题。 你需要地块吗?还是您在寻找相关矩阵? ...双向相关性通常不显着,请尝试阅读您正在使用的库的用户指南中的功能选择...这是scikit learn 中的那部分 【参考方案1】:

这里的问题在较小程度上是技术部分。地块的生产(编号 5625)将需要相当长的时间。此外,绘图会占用一些内存。

所以我想问几个问题来解决这些问题:

真的有必要拥有所有这些散点图吗? 可以提前降维吗? 为什么我有这么多维度?

如果情节真的有用,你可以自己制作并粘贴在一起,或者等到功能准备好。

【讨论】:

我认为您是对的,以这种方式处理的功能太多了。降维似乎是要走的路!

以上是关于来自具有太多列的数据帧的 Python 散点矩阵的主要内容,如果未能解决你的问题,请参考以下文章

如何获得一个散点矩阵,仅由具有 1:1 线的散点图和良好的轴标签组成?

python数据分析-可视化显示-散点图矩阵

使用来自另一个数据帧的索引创建一个空数据帧

使用多个数据集创建 seaborn 散点图矩阵 (PairGrid)

R:从一个数据帧中提取行,基于列名匹配来自另一个数据帧的值

如何组合散点图以形成具有公共 X 轴的散点图矩阵以用于不同的 Y 轴?