我有大约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)发布于 2017-12-11 23:51:21
这应该很简单:
data = data.drop(list_of_cols_to_drop, axis=1)或
data = data.drop(data.columns.difference(list_of_needed_cols), axis=1)有一个用于SparseDataFrame对象的drop方法。
从文档字符串中:
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.https://stackoverflow.com/questions/47756510
复制相似问题