首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >我无法在Python 3.6中显示相关矩阵的名称

我无法在Python 3.6中显示相关矩阵的名称
EN

Stack Overflow用户
提问于 2018-09-14 05:59:24
回答 1查看 0关注 0票数 0

我正在尝试编写一个代码来查找Excel中矩阵的Pearson和Spearman相关性,而不是根据我的阈值显示它是否相关。我的代码是这样的:

代码语言:javascript
复制
import pandas
X = pandas.read_excel(open('excel.xlsx', 'rb'))
Y = np.corrcoef(X)

for i in Y :
    if i >= 0.50:
        print("POSITIVE CORRELATION")
    elif CC0 <= -0.50:
        print("NEGATIVE CORRELATION")
    else :
        print("NO CORRELATION")

我的excel矩阵文件是这样的:

代码语言:javascript
复制
    X1  X2  X3  X4  X5  
A   12  12  16  16  19  
B   23  23  23  24  24  
C   16  16  20  23  48  
D   23  25  22  25  13  
E   56  51  51  54  69  

这将创建一个Pearson系数数字的矩阵,如下所示;

代码语言:javascript
复制
[[ 1.          0.76072577  0.86385074 -0.75301812  0.66995002]
 [ 0.76072577  1.          0.74206343 -0.47660312  0.64827257]
 [ 0.86385074  0.74206343  1.         -0.93521563  0.93280718]
 [-0.75301812 -0.47660312 -0.93521563  1.         -0.92556091]
 [ 0.66995002  0.64827257  0.93280718 -0.92556091  1.        ]]

当我使用阈值时,结果仅显示是否存在正相关或负相关,而不是名称。但我希望它看起来像这样:

代码语言:javascript
复制
POSITIVE CORRELATION BETWEEN A AND B
POSITIVE CORRELATION BETWEEN A AND C... etc.

有没有办法让我将我的数据名称写入输出文件?

EN

回答 1

Stack Overflow用户

发布于 2018-09-14 15:27:45

我能想到的一种方法是:

代码语言:javascript
复制
import pandas
import numpy as np
X = pandas.read_excel(open('excel.xlsx', 'rb'))
Y = np.corrcoef(X)

index_list = X.index.tolist()

for i, index_name in enumerate(index_list):
    for j in range(i+1, len(index_list)):
        if Y[i][j] >= 0.50:
            print("POSITIVE CORRELATION BETWEEN {} & {}".format(index_name, index_list[j]))
        elif Y[i][j] <= -0.50:
            print("NEGATIVE CORRELATION BETWEEN {} & {}".format(index_name, index_list[j]))
        else :
            print("NO CORRELATION BETWEEN {} & {}".format(index_name, index_list[j]))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100002634

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档