如何从相关列表中获取列名?

How can I get column name from correlation list?

我想获取相关关系大于0.2小于0.8的所有列名。有什么办法吗?

使用 pandas 文档中的示例,我们可以使用两个条件获取校正和过滤,获取匹配项的索引并输出到列表。

import pandas as pd
def histogram_intersection(a, b):
    v = np.minimum(a, b).sum().round(decimals=1)
    return v
df = pd.DataFrame([(.2, .3), (.0, .6), (.6, .0), (.2, .1)],
                  columns=['dogs', 'cats'])

c = abs(df.corr(method=histogram_intersection)['cats'])

print(c)
print(c[(c>.2) & (c<.8)].index.tolist())

输出

dogs    0.3
cats    1.0
Name: cats, dtype: float64

['dogs']

您可以使用条件索引系列 corList,并使用 .index 检索名称:

corList[(corList > 0.2) & (corList 0.8)].index

或者更易读的版本:

corList[corList.gt(0.2) & corList.lt(0.8)].index