2017-06-10 16 views
0

ゴールだけで、私は括弧内の文字列を含む列で開始交換非アルファベット文字

任意の非アルファベット文字の単語を維持し、削除することです

(Pdb) test['userTweets'].head() 
0 [the SELU function to verify that the mean/variance is ~ 0/1... 
1 [trump is really @#$#@%@#@[email protected]# 
2 [Yo Hillary! should have @*&(@#[email protected] Trump... 
3 [When are we going to see those memos?????... 
... 

彼らはブラケットが含まれているので、実際には、括弧を取り除くために私が従ったリストを含むカラムではありません。

test['userTweets'] = test['userTweets'].str.extract(r'\[(.*)\]') 

それから私はPythonの正規表現の機能を使用します。

(Pdb) regex = re.compile('[^a-zA-Z]') 
(Pdb) test['userTweets'] = test['userTweets'].str.replace(regex,'') 

しかし、私は*** TypeError: object of type '_sre.SRE_Pattern' has no len()

を取得していますがが、正規表現が構築に成功している:

(Pdb) regex 
<_sre.SRE_Pattern object at 0x11159f6a8> 

は適用するためのより良い方法はありますアルファベット以外の文字を置換/削除するためのpandas文字列への正規表現関数?

+0

正規表現のコンパイル済みオブジェクトではなく*文字列*パターンを渡してみてください。また、 'regex = True'引数をPandas' replace'に追加してください –

答えて

1
import string 
test['userTweets'] = "".join([c for c in test['userTweets'] if c in string.ascii_letters]) 

私は上記のようなことをしました。

コードはおそらく異なるように見えますが、あなたは一般的な考え方を得ます。

関連する問題