熊猫通过与第一列的相关性对列进行排序

jim*_*923 1 python pandas

我有一个df

          A         B         C         D
A  1.000000  0.202557  0.689214  -.705000
B  0.202557  1.000000  0.038306 -0.113245
C  0.689214  0.038306  1.000000  0.074773
D  -.705000 -0.113245  0.074773  1.000000
Run Code Online (Sandbox Code Playgroud)

我想按与A列的相关性排序,应按正负排序

          A         C        B         D
A  1.000000  0.689214  0.202557 -.705000
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?谢谢

小智 5

我了解以下问题:您有一个数据框,例如

   A  B  C
0  2  0  3
1  1 -3  0
2 -1  2 -2
3  3 -1  2
Run Code Online (Sandbox Code Playgroud)

并希望通过与列A的相关性对其列进行排序。这涉及计算相关矩阵(在问题中显示),然后根据相关性对原始数据帧进行排序。方法如下:

ix = df.corr().sort_values('A', ascending=False).index
df_sorted = df.loc[:, ix]
Run Code Online (Sandbox Code Playgroud)

输出:

   A  C  B
0  2  3  0
1  1  0 -3
2 -1 -2  2
3  3  2 -1
Run Code Online (Sandbox Code Playgroud)

相关矩阵是对称的,因此我将按熊猫喜欢的方向在列内而不是行内进行排序。然后,将获得的索引用于重新排序列。