从熊猫中的相关矩阵创建列表

时间:2019-01-15 21:59:34

标签: python pandas dataframe matrix correlation

我正在尝试根据相关矩阵创建一个列表(相关性最高的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'],或者我希望我的列表是我的意思。

与我的所有帖子一样,我知道礼节至少要尝试在代码方面做出一些努力,但是像往常一样,我完全感到困惑,因此为什么要在这里发布。任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:1)

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

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

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