我想知道我DataFrame
相对于其他每一列的从最高相关到最低相关的顺序。
np.random.seed([3,1415])
df = pd.DataFrame(np.random.rand(6, 4).round(2), columns=list('ABCD'))
看起来像:
A B C D
0 0.44 0.41 0.46 0.47
1 0.46 0.02 0.85 0.82
2 0.78 0.76 0.93 0.83
3 0.88 0.93 0.72 0.12
4 0.15 0.20 0.44 0.10
5 0.28 0.61 0.09 0.84
相关表如下所示:
print df.corr()
A B C D
A 1.000000 0.702557 0.689214 0.005000
B 0.702557 1.000000 0.038306 -0.113245
C 0.689214 0.038306 1.000000 0.074773
D 0.005000 -0.113245 0.074773 1.000000
我希望对列B
进行排序['B', 'A', 'C', 'D']
。一个DataFrame
应该看起来像这样吗?
A B C D
A A B C D
B B A A C
C C C D A
D D D B B
另外,我计划在DataFrames
20至40千列的宽度上执行此操作,因此性能是一个问题。
我认为这可以工作:
In [11]:
df.corr().apply(lambda x: x.sort_values(ascending=False).index)
Out[11]:
A B C D
A A B C D
B B A A C
C C C D A
D D D B B
所以这适用sort_values
于每一列并返回索引
不确定如何在40k列df上缩放,但问题是当前sort_values
在df上只能按特定列或df宽的行排序
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句