2017-12-08 9 views
0

正規表現を使用してクリーンアップする必要がある電子メールで構成されたPandas Dataframeがあります。しかし、私の列をきれいにしようとする試みは、実際にテキストに適用されていません。正規表現がPandas Dataframeと連携していません

例のデータは、以下である:

|subeject   | description  | 
--------------------------------------- 
|change email  | 'Hi, I'm trying...| 
|how are you?  | 'Hi, how are... | 

実際のデータセットが約2500行を有します。

私が使用しているサンプルコードは次のとおりです。

のPython 2.7を使用してiPythonのノートブックにこのコードを実行する
data = pd.read_csv('file.csv', names=['subject', 'description']) 
data['description'] = data['description'].str.lower().str.split() 

# Text cleaning below: 
data['description'] = data['description'].replace(r'<(.*?)\>', '') 
data['description'] = data['description'].replace(r'www[a-z]+', '') 
... # more regex 

私は正規表現が文を識別し、スペースに置き換えることを期待します。

ただし、実行すると説明のテキストは変更されません。

私は同じ結果と試みた別の方法は次のとおりです。しかし、私は削除されているテキストのどれと同じ結果を得た

for i in data['description']: 
    re.sub(r'<(.*?)\>', '', i) 
    re.sub(r'www[a-z]+', '', i) 

私に正しい方向にアドバイスしてもらえますか?

+0

あなたの第二のアプローチは、ほとんどが正しいです。 Pythonの文字列は不変なので、各置換の結果を取得する必要があります: 'i = re.sub(r" ... "、 ''、i)'など – alexis

答えて

0

テキスト清掃のための構文は次のようになります。

data['description'] = data['description'].str.replace(r'www[a-z]+', '') 
関連する問題