我有一个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
我该怎么做? 谢谢
请您参考如下方法:
问题我是这样理解的:你有一个dataframe,比如
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 喜欢的方向排序,在列内而不是在行内。然后使用获得的索引对列进行重新排序。
