2016-07-12 6 views
-1

나는 짹짹 열이 있습니다. 나는 모든 정규식을 사용하여 트윗 내부에 언급의 목록을 얻으려면 :pandas str.extractall on complete words

\@(\w+) 

내가 df.Tweets.str.extractall('\@(\w+)')를 사용하여 시도하지만 그것이 (내 생각 엔)에 각 단어를 분리하고자으로 전체 단어를 일치하는 성공하지 않습니다 많은 컬럼. 나는 다음과 같은 오류

AssertionError: 1 columns passed, passed data had 15 columns. 

내가 '\@(\w)' 작품이 예상과 결과 만 첫 글자를 반환으로 말할 수 있습니다를 얻을. 전체 단어에 대한 +은 아마도 루트입니다.

이것은 Kaggle의 ISIS 데이터 세트입니다. 예를 들어 첫 번째 일치 항목은
'Aslm Please share our new account after the previous one was [email protected] @seifulmaslul123 @CheerLeadUnited'
입니다. .extract()을 사용하면 잘되지만 첫 번째 일치 항목 만 찾습니다. 사용 .extractall('\@(\w)') 내가 얻을 :

   0 
    match 
8  0  K 
     1  s 
     2  C 

의미가있다. 그러나 모든 완전한 단어를 추출하면 오류가 발생합니다.

+0

사용중인 정규 표현식과'extractall'이 할 일입니다. 데이터 프레임과 관련이 있다고 생각합니다. 당신이 그것을 공유하지 않으면 우리는 말할 수 없습니다. – piRSquared

+0

문제의 df는 ISIS kaggle 데이터 세트입니다. 일치하는 첫 번째 셀은''@ AbdirahmanBash2 @KhalidMaghrebi_ @ IbnNabih1 @Polder_Mujahid Aslm입니다. 몇 뉴스를 제외하고 번역을 완료했습니다. ' – DeanLa

+1

게시물에 넣으십시오. – piRSquared

답변

1

분명히 팬더는 그룹을 열로 구분하여 모든 정규 표현식을 그룹으로 묶는 방법입니다.
df.Tweets.str.extractall('(\@(\w+))')

차이점은 문자열 안에 감싸는 괄호입니다.

+0

또는 그룹을 모두 제거 하시겠습니까? ''@ \ w + ''? –

+0

'ValueError : 패턴에 캡처 그룹이 없습니다 .' – DeanLa