【发布时间】:2015-06-16 09:01:37
【问题描述】:
我有一个数据框并计算了成对相关性
>>> 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
谢谢
【问题讨论】: