从pandas数组中获取N个最大值,索引和列标题保持不变

Sir*_*rah 4 python pandas

假设我刚刚计算了一个相关矩阵.使用pandas数据帧,我现在想要获得与其轴名称相关的最高相关性.

例如:

   a, b, c, d, e, f 
a, 0, 1, 2, 3, 4, 5,
b, 1, 0, 3, 4, 5, 6,
c, 2, 3, 0, 5, 6, 7,
d, 3, 4, 5, 0, 7, 8,
e, 4, 5, 6, 7, 0, 9,
f, 5, 6, 7, 8, 9, 0
Run Code Online (Sandbox Code Playgroud)

得到:

e f 9
f d 8
f c 7
e d 7
Run Code Online (Sandbox Code Playgroud)

等等...

我已经阅读了pandas文档并查看了groupby方法以及head之类的函数,但是我对如何执行此操作感到有点迷失.

DSM*_*DSM 8

你可以stack在这里使用,它将生成一个带有索引中的行和列信息的Series,然后调用nlargest:

>>> df.stack()
a  a    0
   b    1
   c    2
   d    3
   e    4
   f    5
b  a    1
   b    0
   c    3
[etc.]
>>> df.stack().nlargest(6)
e  f    9
f  e    9
d  f    8
f  d    8
c  f    7
d  e    7
dtype: int64
Run Code Online (Sandbox Code Playgroud)