如何计算所有可能行之间的相关性

时间:2016-12-17 00:22:12

标签: python

我在xls中有非常大的数据。其中一小部分如下所示

 Name    V1  V2  V3  V4  V5
    A   2   2   2   1   2
    Ab  10  10  9   1   10
    AC  14  7   1   2   14
    AD  5   1   1   1   5
    AF  14  14  11  1   14
    Ag  3   3   3   1   3
    Qn  7   7   7   3   7
    Ah  35  3   3   1   35

我想计算所有可能的行组合相关系数 例如,第1行和第2行,第1行和第3行......

我喜欢的输出

Name1   Name2     Correlation Coef
A       Ab    
A       AC
.          .
.          .
.          .

我发现了这个,但我无法弄清楚如何使用它 Calculating Pearson correlation and significance in Python

这个解决方案给出了答案,但问题是我无法提供我想要的输出 http://lilithelina.tumblr.com/post/135265946959/data-analysis-pearson-correlation-python

1 个答案:

答案 0 :(得分:1)

将您的数据作为pandas数据帧读取(比方说,df)。致电df.T.corr().unstack().reset_index().unstack()构建分层索引,.reset_index()将其转换为列,.T关联行而不是列。

results = df.T.corr().unstack().reset_index(name="corr")
print(results)
#   level_0 level_1      corr
#0   A1L020  A1L020  1.000000
#1   A1L020  A1X283  0.993933
#2   A1L020  A2A3N6  0.499363
#3   A1L020  A2RTX5  0.408248
#....
results.to_csv("some_file.csv")