2016-12-27 30 views
0

我有一个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 

我该怎么办这个? 感谢

+1

这是否帮助 - 'df.sort_values( 'A',上升=假轴= 1)'? –

+0

DataFrame中的内容是什么?这些数字是相关系数,还是您想要计算列之间的相关系数并使用它们进行排序? –

回答

1

我明白的问题如下:你有一个数据帧,如

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 

相关矩阵是对称的,所以我的方向熊猫排序偏好,柱内,而不是行内。所获得的索引然后用于对列进行重新排序。