[英]How remove few columns from countvectorized sparse dataframe in pandas
我在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)
應該很容易:
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.
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.