我有一个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)
相关矩阵是对称的,因此我将按熊猫喜欢的方向在列内而不是行内进行排序。然后,将获得的索引用于重新排序列。