我有一个数据框和计算成对相关
>>> df1 = pd.read_csv("/home/zebrafish/Desktop/stack.csv")
>>> df1.corr()
GA PN PC MBP GR AP
GA 1.000000 0.070541 0.259937 -0.452661 0.115722 0.268014
PN 0.070541 1.000000 0.512536 0.447831 -0.042238 0.263601
PC 0.259937 0.512536 1.000000 0.331354 -0.254312 0.958877
MBP -0.452661 0.447831 0.331354 1.000000 -0.467683 0.229870
GR 0.115722 -0.042238 -0.254312 -0.467683 1.000000 -0.248777
AP 0.268014 0.263601 0.958877 0.229870 -0.248777 1.000000
>>>
现在从这个相关矩阵如何列出或提取高度相关的变量在上面的情况下数据框很小所以它很容易选择高度相关的变量但是当数据集很大时说4000 X 2000比我们怎样才能使用python或pandas或numpy执行此操作。
通过建议的方式,我能够得到这个非常漂亮,但我的困惑仍然存在,它与编程部分无关,它与理论相关
level_0 level_1 0
0 GA GA 1.000000
1 GA PN 0.070541
2 GA PC 0.259937
4 GA GR 0.115722
5 GA AP 0.268014
6 PN GA 0.070541
7 PN PN 1.000000
8 PN PC 0.512536
9 PN MBP 0.447831
11 PN AP 0.263601
12 PC GA 0.259937
13 PC PN 0.512536
14 PC PC 1.000000
15 PC MBP 0.331354
17 PC AP 0.958877
19 MBP PN 0.447831
20 MBP PC 0.331354
21 MBP MBP 1.000000
23 MBP AP 0.229870
24 GR GA 0.115722
28 GR GR 1.000000
30 AP GA 0.268014
31 AP PN 0.263601
32 AP PC 0.958877
33 AP MBP 0.229870
35 AP AP 1.000000
例如在给定的结果和平中由于我想要删除显示相关性大于0.2的变量,我们可以看到AP与给定阈值内的其余三个相关,而其余三个也与AP相关(尽管如此, 0.2不代表高度相关的集合,而仅仅是为了一个例子而选择)因此在什么基础上我可以考虑在四个AP,GA,PN和PC之间高度相关或仅相关的变量。
30 AP GA 0.268014
31 AP PN 0.263601
32 AP PC 0.958877
谢谢
答案 0 :(得分:4)
你可以试试这个
corr_val=0.01
df2 = df1.corr().unstack().reset_index()
df2[df2[0]>corr_val]