python - Pandas:如何查找范围内值的行和列?

标签 python pandas dataframe

我有一个 Pandas DataFrame,它是通过跨变量执行多重关联生成的。

corr = df.apply(lambda s: df.corrwith(s))
print('\n', 'Correlations')
print(corr.to_string())

输出如下所示:

 Correlations
        A         B           C          D          E
A   1.000000   -0.901104    0.662530  -0.772657   0.532606
B  -0.901104    1.000000   -0.380257   0.946223  -0.830466
C   0.662530   -0.380257    1.000000  -0.227531  -0.102506
D  -0.772657    0.946223   -0.227531   1.000000  -0.888768
E   0.532606   -0.830466   -0.102506  -0.888768   1.000000

但是,这是相关表的一个小样本,可能超过 300 行 x 300 列。我正在尝试找到一种方法来识别特定值范围内相关性的坐标。

例如,+0.25 和 -0.25 之间的相关性。我想要的输出是:

E x C = -0.102506
D x C = -0.227531

在搜索中,我发现了一些无法以连贯方式组合在一起的 pandas 函数: pandas iloc, loc , pandas between

您建议我如何完成此过滤?

最佳答案

使用掩码+DataFrame.where。由于相关矩阵是对称的,我们将使用 np.triu 来消除重复项。

import numpy as np

corr.where(np.triu((corr.values <= 0.25) & (corr.values >= -0.25))).stack()

C  D   -0.227531
   E   -0.102506
dtype: float64

关于python - Pandas:如何查找范围内值的行和列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53014579/

相关文章:

r - 如何将类别分配给 R 中的列,以便可以对每行对这些类别中的值进行求和?

python - 在python中将查询结果转换为DataFrame

python - 对多输出 Keras 模型中的每个输出使用不同的样本权重

python - 将数据框划分为包含所有列的行列表

python - Django View 不返回 httpresponse

python - 修改矩阵df格式

python - 在 Pandas 中应用分组依据后获取最大计数的行值

javascript - 单击 html 按钮从服务器运行 Python 文件

python - 将样式应用于保存到 HTML 文件的 Pandas 数据框

python-2.7 - 从 Twitter 抓取用户位置