在 sklearn.feature_selection 之后过滤 DataFrame
Filter DataFrame after sklearn.feature_selection
我降低了数据集的维度 (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]
我想你需要 if return mask
:
cols_OK = sel.get_support()
df = df.loc[:, cols_OK]
如果 return 索引:
cols_OK = sel.get_support()
df = df.iloc[:, cols_OK]
我降低了数据集的维度 (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]
我想你需要 if return mask
:
cols_OK = sel.get_support()
df = df.loc[:, cols_OK]
如果 return 索引:
cols_OK = sel.get_support()
df = df.iloc[:, cols_OK]