You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Pandas中筛选与指定列高度相关的数据列

快速筛选与响应变量相关的预测变量(Pandas实现)

刚好我经常处理这类高维DataFrame的特征筛选需求,用Pandas几步就能高效搞定,完全适配你100多列的数据集:

步骤1:计算所有列与响应变量A的相关系数

直接调用Pandas内置的corr()方法,然后提取对应A列的结果——这样会得到一个Series,索引是所有列名,值是对应列和A的皮尔逊相关系数:

corr_with_A = df.corr()['A']

步骤2:筛选符合阈值的列

按照你设定的>0.2阈值筛选,这里建议考虑绝对值(负相关的变量往往也有预测价值),如果只需要正相关,去掉abs()即可:

# 保留与A相关系数绝对值大于0.2的列(含A本身)
filtered_cols = corr_with_A[abs(corr_with_A) > 0.2].index.tolist()

# 若仅需正相关变量,用这行:
# filtered_cols = corr_with_A[corr_with_A > 0.2].index.tolist()

步骤3:生成筛选后的数据集

用筛选出的列名切片原DataFrame,得到只包含响应变量和符合条件的预测变量的新DataFrame:

filtered_df = df[filtered_cols]

额外提速小技巧

如果你的数据集行数特别多(比如百万级),可以先移除完全重复的列,减少不必要的计算量:

# 先去重列
df = df.loc[:, ~df.columns.duplicated()]
# 再计算相关系数
corr_with_A = df.corr()['A']

你已经生成的热力图可以和这个结果互相验证,确保筛选的准确性~


内容的提问来源于stack exchange,提问作者Alex Xu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 03:34:32