Python 从具有太多列的数据框中散布矩阵
Python scatter matrices from dataframe with too many columns
我是 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
。这看起来效率很低。我想知道是否有更好的方法来探索我的数据集中的相关性。
这里的问题是技术部分的较小扩展。地块的制作(编号 5625)将花费相当长的时间。此外,这些图会占用一些内存。
所以我会问几个问题来解决问题:
- 真的需要所有这些散点图吗?
- 可以提前降维吗?
- 为什么我的维度数这么高?
如果图真的有用,可以自己制作贴出来,也可以等函数做好了
我是 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
。这看起来效率很低。我想知道是否有更好的方法来探索我的数据集中的相关性。
这里的问题是技术部分的较小扩展。地块的制作(编号 5625)将花费相当长的时间。此外,这些图会占用一些内存。
所以我会问几个问题来解决问题:
- 真的需要所有这些散点图吗?
- 可以提前降维吗?
- 为什么我的维度数这么高?
如果图真的有用,可以自己制作贴出来,也可以等函数做好了