如何 select 列与数据框中的一个特定列高度相关
How to select columns that are highly correlated with one specific column in a dataframe
我有一个超过 100 列的数据框,我正在尝试用它来构建模型。在这种情况下,此数据框中的一列 (A) 被视为响应,所有其他列(B、C、D 等)都是预测变量。因此,我正在尝试 select 基于相关系数(比如 >0.2)与 A 列相关的所有列。我已经生成了一个热图,其中包含每对列之间的所有相关因子。但是我可以在 pandas 中有一个快速的方法来将所有相关因子超过 0.2 的列(如果需要我当然会调整)到 A 列吗?提前致谢!
使用 DataFrame
计算相关性,然后使用布尔掩码根据 cut-off 条件对列进行切片。
import pandas as pd
df = pd.DataFrame({'A': [1,2,3,4,5,6,7,8,9,10],
'B': [1,2,4,3,5,7,6,8,10,11],
'C': [15,-1,17,-10,-10,-13,-99,-101,0,0],
'D': [0,10,0,0,-10,0,0,-10,0,10]} )
df.loc[:, df.corr()['A'] > 0.2]
A B
0 1 1
1 2 2
2 3 4
3 4 3
4 5 5
5 6 7
6 7 6
7 8 8
8 9 10
9 10 11
我有一个超过 100 列的数据框,我正在尝试用它来构建模型。在这种情况下,此数据框中的一列 (A) 被视为响应,所有其他列(B、C、D 等)都是预测变量。因此,我正在尝试 select 基于相关系数(比如 >0.2)与 A 列相关的所有列。我已经生成了一个热图,其中包含每对列之间的所有相关因子。但是我可以在 pandas 中有一个快速的方法来将所有相关因子超过 0.2 的列(如果需要我当然会调整)到 A 列吗?提前致谢!
使用 DataFrame
计算相关性,然后使用布尔掩码根据 cut-off 条件对列进行切片。
import pandas as pd
df = pd.DataFrame({'A': [1,2,3,4,5,6,7,8,9,10],
'B': [1,2,4,3,5,7,6,8,10,11],
'C': [15,-1,17,-10,-10,-13,-99,-101,0,0],
'D': [0,10,0,0,-10,0,0,-10,0,10]} )
df.loc[:, df.corr()['A'] > 0.2]
A B
0 1 1
1 2 2
2 3 4
3 4 3
4 5 5
5 6 7
6 7 6
7 8 8
8 9 10
9 10 11