【问题标题】:Creating a list from a correlation matrix in pandas从熊猫中的相关矩阵创建列表
【发布时间】:2019-01-15 21:59:33
【问题描述】:

我正在尝试从相关矩阵中创建一个列表(相关性最高的 3 个选项)。假设我有以下矩阵:

     A     B     C     D     E
A  1.00  0.15  0.57  0.11  0.98
B  0.59  1.00  0.32  0.24  0.54
C  0.96  0.65  1.00  0.22  0.67
D  0.72  0.33  0.78  1.00  0.92
E  0.88  0.94  0.61  0.48  1.00

假设我然后对矩阵进行排序以根据 B 列给出最相关的矩阵,现在矩阵将如下所示:

     A     B     C     D     E
B  0.59  1.00  0.32  0.24  0.54
E  0.88  0.94  0.61  0.48  1.00
C  0.96  0.65  1.00  0.22  0.67
D  0.72  0.33  0.78  1.00  0.92
A  1.00  0.15  0.57  0.11  0.98

如您所见,矩阵已排序以显示 B 列最相关的对应项。然后我想要的是能够以列表形式返回前 3 个相关字母,同时遗漏顶行 (B),因为这显然是 1:1 相关的。

例如,我想要top_correlated = ['E', 'C', 'D'],或者我希望我的列表是我的意思。

与我所有的帖子一样,我知道礼仪是至少尝试在代码方面表现出一些努力,但像往常一样,我完全被难住了,因此我在这里发帖。非常感谢任何帮助。

【问题讨论】:

    标签: python pandas dataframe matrix correlation


    【解决方案1】:

    您可以在列上调用nlargest,而不是对整个DataFrame 进行排序,获取索引,然后从第一个元素开始切片,因为它应该始终是它自己。

    col = 'B'
    df[col].nlargest(4).index[1:].tolist()
    

    ['E', 'C', 'D']
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-29
      • 2022-11-14
      • 2021-04-23
      • 1970-01-01
      • 2018-01-25
      • 2013-09-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多