2017-04-03 2 views
2

여러 파일에서 단어를 삭제합니다. 먼저 각 파일을 읽고 데이터 프레임에서 중지 단어를 제거합니다. 그런 다음 데이터 프레임을 다음 데이터 프레임과 연결합니다. 여기Python에서 pandas 데이터 스톱에서 단어를 제거하면 잘못된 결과가 나타납니다.

0  [I, , , , , r, e, , h, , h, , h, v, e, ...  
1  [D, , u, , e, v, e, n, , e, , h, e, , u, ...  
2  [R, g, h, , f, r, , h, e, , e, c, r, , w, ...  
3  [A, f, e, r, , c, l, l, n, g, , n, , p, l, ...  
4  [T, h, e, r, e, , v, e, r, e, e, n, , , n, ... 

내 코드입니다 :

allFiles = glob.glob(ROOT_DIR + '/' + DATASET + "/*.csv") 
frame = pd.DataFrame() 
list_ = [] 
stop = stopwords.words('english') 
for file_ in allFiles: 
    chunkDataframe = pd.read_csv(file_,index_col=None, header=0, chunksize=1000) 
    dataframe = pd.concat(chunkDataframe, ignore_index=True) 
    dataframe['Text'] = dataframe['Text'].apply(lambda x: [item for item in x if item not in stop]) 
    print dataframe 
    list_.append(dataframe) 
frame = pd.concat(list_) 

날에서 제거 중지 단어로 여러 파일을 읽을 수있는 방법을 최적화 할 수 있도록하시기 바랍니다 내가 dataframe를 인쇄 할 때 그것은 나에게 같은 출력을 제공합니다.

+0

[MCVE]를 제공 할 수 있습니까? 이 상황에서 – IanS

답변

0

dataframe['Text']에는 단어 목록이 아닌 단일 문자열이 들어 있습니다. 따라서 lambda x: [item for item in x if item not in stop]을 사용하여 반복 할 경우 문자 단위로 반복하고 결과로 문자 목록을 생성합니다. 단어 단위로 반복하려면 다음과 같이 변경하십시오.

lambda x: [item for item in string.split(x) if item not in stop] 
+0

을 어떻게 올바르게 표시 할 수 있습니까? 이것을 사용하려고하면 > – mkheifetz