gpt4 book ai didi

python - 对相关的每一列独立排序并得到索引值

转载 作者:太空宇宙 更新时间:2023-11-04 00:50:20 24 4
gpt4 key购买 nike

我想知道我的 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

此外,我计划在 20-40 千列宽的 DataFrames 上执行此操作,因此性能是个问题。

最佳答案

我认为这可行:

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 上扩展,但问题是当前 df 上的 sort_values 只能按特定列或行 df-wide 排序

关于python - 对相关的每一列独立排序并得到索引值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37371841/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com