在sklearn.feature_selection之后过滤DataFrame

问题描述 投票:1回答:1

我减少了数据集的维度(pandas DataFrame)。

X = df.as_matrix()
sel = VarianceThreshold(threshold=0.1)
X_r = sel.fit_transform(X) 

然后我想要恢复缩小的DataFrame(即只保留ok列)

我发现只有这种丑陋的方式,这是非常低效的,你有任何更清洁的想法吗?

    cols_OK = sel.get_support()  # which columns are OK?
    c = list()
    for i, col in enumerate(cols_OK):
        if col:
            c.append(df.columns[i])
    return df[c]
python pandas numpy scikit-learn dimensionality-reduction
1个回答
1
投票

我认为你需要返回mask

cols_OK = sel.get_support()
df = df.loc[:, cols_OK]

如果返回索引:

cols_OK = sel.get_support()
df = df.iloc[:, cols_OK]
© www.soinside.com 2019 - 2024. All rights reserved.