【问题标题】:Correlation matrix for two Pandas dataframes [duplicate]两个 Pandas 数据帧的相关矩阵 [重复]
【发布时间】:2017-01-21 07:11:10
【问题描述】:

假设我有两个数据框:

df1   df2
A B    C D
1 3   -2 7
2 4    0 10

我需要创建一个相关矩阵,它由来自两个数据帧的列组成。

corrmat_df
  C D
A 1 *  
B * 1 
  • 代表相关性

我可以在嵌套循环中逐元素执行,但也许有更多 Pythonic 方式? 谢谢。

【问题讨论】:

  • 它建议嵌套循环。我在问题中提到过。

标签: python pandas dataframe correlation


【解决方案1】:

只需组合数据框并使用.corr()

result = pd.concat([df1, df2], axis=1).corr()
#     A    B    C    D
#A  1.0  1.0  1.0  1.0
#B  1.0  1.0  1.0  1.0
#C  1.0  1.0  1.0  1.0
#D  1.0  1.0  1.0  1.0

结果包含所有想要的(以及一些不需要的)相关性。例如:

result[['C','D']].ix[['A','B']]
#     C    D
#A  1.0  1.0
#B  1.0  1.0

【讨论】:

  • 我需要矩阵中的 C D 列和 A B 行,因为我要绘制热图。我不需要单独的结果。每个数据框中有几十列,我事先不知道它们的名字。
  • 当然欢迎您选择您想要的任何行和列:result[['C','D']].ix[['A','B']].
  • 这简直是天才的答案!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-08-10
  • 1970-01-01
  • 1970-01-01
  • 2019-05-13
  • 1970-01-01
  • 2021-08-11
  • 1970-01-01
相关资源
最近更新 更多