在sklearn.feature_selection之后过滤DataFrame

时间:2018-03-02 11:15:33

标签: python pandas numpy scikit-learn dimensionality-reduction

我减少了数据集的维度(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]

1 个答案:

答案 0 :(得分:1)

我认为你需要返回mask

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

如果返回索引:

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