[英]Filter DataFrame after sklearn.feature_selection
I reduce dimensionality of a dataset (pandas DataFrame).我降低了数据集(pandas DataFrame)的维数。
X = df.as_matrix()
sel = VarianceThreshold(threshold=0.1)
X_r = sel.fit_transform(X)
then I wanto to get back the reduced DataFrame (ie keep only ok columns)然后我想取回减少的 DataFrame(即只保留 ok 列)
I found only this ugly way to do so, which is very inefficient, do you have any cleaner idea?我发现只有这种丑陋的方法,这是非常低效的,你有什么更清晰的想法吗?
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]
I think you need if return mask
:我认为你需要 if return
mask
:
cols_OK = sel.get_support()
df = df.loc[:, cols_OK]
and if return indices:如果返回索引:
cols_OK = sel.get_support()
df = df.iloc[:, cols_OK]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.