python - 从 Pandas 中的相关矩阵创建列表

标签 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'],或者我希望我的列表是我的意思。

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

最佳答案

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

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

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

关于python - 从 Pandas 中的相关矩阵创建列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54207492/

相关文章:

python - 名称间距 : How to set class variable of inner class based on class variable of outer class?

Python:绑定(bind)一个未绑定(bind)的方法?

python - Python 社区里的小马是怎么回事?

python - 合并 pandas 中的条目

python - 用 Pandas Series 中的元素填充 Pandas DataFrame 的对角线

python - 使用read_sas后如何从pandas对象类型的b'Text'中获取文本?

Python:动态定义函数

python - Pandas 从特定日期和时间范围读取 csv 数据帧行

python - Pandas ParserError : Error tokenizing data. C 错误:字符串内的 EOF

csv - 正则表达式不区分大小写过滤 Pandas 中的列