2016-07-12 69 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