我在countvectorized数据框中有大约2000个文本功能。我有800个文本特征列的列表,它们对预测模型具有实际的特征重要性贡献。我想只保留这800列并删除剩余的1200个列,因为它们对我的预测贡献不大。
我该怎么做?我有要在文本文件中维护的列的列表。
cv = CountVectorizer( max_features = 2000,analyzer='word')
cv_text = cv.fit_transform(data.pop('text'))
for i, col in enumerate(cv.get_feature_names()):
data[col] = pd.SparseSeries(cv_text[:, i].toarray().ravel(), fill_value=0)
答案 0 :(得分:0)
应该很容易:
data = data.drop(list_of_cols_to_drop, axis=1)
或
data = data.drop(data.columns.difference(list_of_needed_cols), axis=1)
drop
个对象有一个SparseDataFrame
方法。
来自docstring:
In [139]: pd.SparseDataFrame.drop?
Signature: pd.SparseDataFrame.drop(self, labels=None, axis=0, index=None, columns=None, level=None, inplace=False, errors='rai
se')
Docstring:
Return new object with labels in requested axis removed.