我在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
答案 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")