如何计算所有可能行之间的相关性
Posted
技术标签:
【中文标题】如何计算所有可能行之间的相关性【英文标题】:how can I calculate correlation between all possible rows 【发布时间】:2017-05-02 19:54:03 【问题描述】:我在 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】:以 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")
【讨论】:
添加了.unstack()
。
刚刚做了 - 并更改了列名。
您必须将数据保存为 CSV,而不是 XLS:pandas.pydata.org/pandas-docs/stable/generated/…
添加了保存到 CSV。
当你阅读一个CVS文件时,你显然应该使用read_csv()
。以上是关于如何计算所有可能行之间的相关性的主要内容,如果未能解决你的问题,请参考以下文章