2017-12-11 8 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