2016-04-06 10 views
1

私のパンダ交換機能でフレーズ'Thank you'/'thank u'/'thanks!'... ectのすべてのフォーム(大文字/大文字、短い形式..)を削除したいと思います。パンダ交換機能で正規表現を追加する

私は現在、どちらの仕事にハードマッチングをしていますが、これを行うためのより効率的な方法はありますか?

df.text_col.str.replace(thanks_to_delete, '', case=False) 

:交換大文字と小文字を区別するために、次のワンライナーを使用して、その後

thanks_to_delete = '|'.join(['thanks', 'thank you']) 

と:

df.text_col.replace(to_replace='Thank you',value='',inplace=True,regex=True) 
df.text_col.replace(to_replace='thank you',value='',inplace=True,regex=True) 
df.text_col.replace(to_replace='th(.+)u',value='',inplace=True,regex=True) 
            . 
            . 
+0

Is大文字と小文字を区別しないように 'i'修飾子を設定する方法はありますか? – Laurel

+0

パンダのドキュメントには含まれていません:http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.replace.html – jxn

+1

@jxnあなたが「短い形式」と考えるもののハードリスト'そうでなければ、これは正しいことを得るのが非常に難しいでしょう。 –

答えて

0

私はあなたが欲しいthank youのすべての例を列挙することをお勧めはを取り除くために試験:

df=pd.DataFrame({ 
    'text_col': ['Thank you very much for your patience', 
        'I would just want to thank you for your patience', 
        'Thanks for your patience'] 
       }) 

df.text_col.str.replace(thanks_to_delete, '', case=False) 
0    very much for your patience 
1 I would just want to for your patience 
2       for your patience 
Name: text_col, dtype: object 
関連する問題