【问题标题】: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

【问题讨论】:

    标签: 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()
    猜你喜欢
    • 1970-01-01
    • 2023-03-27
    • 1970-01-01
    • 2020-01-21
    • 2017-05-18
    • 1970-01-01
    • 2014-04-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多