2017-12-11 6 views
0

カウントベクトル化されたデータフレーム内に約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

それは簡単なはず:

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. 
+0

私は維持するだけで列のリストではなく、ドロップする列のリストを持っています。 –

+0

@ashokeapen、更新された回答を参照してください... – MaxU

関連する問題