如何利用与label相关性达标的特征从Pandas DataFrame生成新数据集?
从DataFrame中筛选相关性达标的特征列
原始数据与相关性筛选代码
首先是你的DataFrame定义:
import pandas as pd df = pd.DataFrame({ 'A' : [1,2,3], 'B' : [4,5,6], 'label' : [1.0, 0.0, 1.0] })
你已经完成的相关性筛选逻辑:
cor = df.corr() cor_target = abs(cor["label"]) relevant_features = cor_target[cor_target>0.05]
筛选特征列的方法
relevant_features是一个Series对象,它的索引就是符合相关性阈值的列名,直接利用这个索引即可从原DataFrame中提取目标列:
方法1:保留所有相关列(包含label列)
df2 = df[relevant_features.index]
方法2:仅保留特征列(排除label)
如果不需要把label列包含在新DataFrame里,可以先从索引中移除它:
# 过滤掉label列,只保留特征列名 feature_names = relevant_features.index.drop('label') df2 = df[feature_names]
验证说明
执行上述代码后,df2就只包含与label列相关性超过0.05的特征列了。比如在你的示例数据中,A和label的相关性是-1.0,B和label的相关性是1.0,都会被选中,最终df2会包含A、B(方法2)或者A、B、label(方法1)。
内容的提问来源于stack exchange,提问作者Qubix
相关产品推荐
相关产品推荐

