我正在尝试从相关矩阵创建一个列表(最高相关选择的 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']
,或者我希望我的列表是我的意思。
与我所有的帖子一样,我知道礼节至少是尝试在代码方面表现出一些努力,但像往常一样我完全被难住了,因此我在这里发帖。非常感谢任何帮助。
最佳答案
无需对整个 DataFrame
进行排序,您可以在您的列上调用 nlargest
,获取索引并从第一个元素切片,因为它应该始终是它自己。
col = 'B'
df[col].nlargest(4).index[1:].tolist()
['E', 'C', 'D']
关于python - 从 Pandas 中的相关矩阵创建列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54207492/