我有一个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
我想通过与A列的相关性进行排序, 应该从正面到负面排序
A C B D
A 1.000000 0.689214 0.202557 -.705000
我该怎么做? 感谢
答案 0 :(得分:5)
我理解如下问题:您有一个数据框,例如
A B C
0 2 0 3
1 1 -3 0
2 -1 2 -2
3 3 -1 2
并希望通过与A列的相关性对其列进行排序。这涉及计算相关矩阵(在问题中显示),然后根据相关性对原始数据帧进行排序。方法如下:
ix = df.corr().sort_values('A', ascending=False).index
df_sorted = df.loc[:, ix]
输出:
A C B
0 2 3 0
1 1 0 -3
2 -1 -2 2
3 3 2 -1
相关矩阵是对称的,所以我在pandas方向上排序,在列内而不是在行内排序。然后使用获得的索引对列重新排序。