gpt4 book ai didi

python - 是否确保 df.corr() 列的顺序

转载 作者:太空宇宙 更新时间:2023-11-04 04:06:37 26 4
gpt4 key购买 nike

在 Pandas 中,我们可以用 .corr() 生成相关矩阵.我的问题很简单:是否保留了原始数据框的列顺序?从我的测试来看似乎是这样,但我想确定一下。

我问是因为我在 Python 3.7.3 上,其中字典维护插入顺序。我不知道当前的问题是否与此相关,但如果 Pandas 在幕后使用字典,那么 corr() 很可能在 Python 3.6+ 中按预期顺序排列但不是在较低版本中。

最佳答案

好吧,如果你看看 source code对于corr,开头的代码如下:

numeric_df = self._get_numeric_data()
cols = numeric_df.columns
idx = cols.copy()
mat = numeric_df.values

正如您在此处看到的,只要方法 _get_numeric_data 保持顺序,corr 也应该保持顺序。深入了解 _get_numeric_data,您可以看到 this block :

self._consolidate_inplace()
return self.combine([b for b in self.blocks if b.is_numeric], copy)

_consolidate_inplace 在元组中构建数据帧的合并部分(保留顺序),而 _get_numeric_data 使用列表理解将此元组过滤为仅数字 block (仍保留顺序) ).

更重要的是,pandas 实际上并没有为您的列名使用字典。 本身是just instances Index 类,它(来自文档字符串)是有序的。

因此,回答您的问题:是的,corr 中保证了顺序,因为它获取和遍历数据框列的方式也保留了顺序。

关于python - 是否确保 df.corr() 列的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57225758/

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