正規表現を使用して文字列のパンダシリーズから単語を削除します

ブルーノ・メロ:

私は、次のパンダシリーズを持っていると仮定します。

x = pd.Series(['box abcd', 'abcd box abcd', 'abcd box', 'abcdboxabcd'])

そして、私は言葉ボックス(私はサブボックスのすべてのオカレンスを削除しないことに注意してください)の出現をすべて削除したい、私はこのようにそれを行っています。

x.apply(lambda x: ' '.join([w for w in x.split(' ') if w != 'box']))

これは私が期待したものを私に与えます:

0           abcd
1      abcd abcd
2           abcd
3    abcdboxabcd
dtype: object

私は、例えば、この使用して正規表現を行う方法があるかどうかを知りたいと思います:

x.str.replace(regex, '')

正規表現は、それが可能である、私は正規表現について多くのことを検索しましたが、答えを見つけることができないよう、正規表現は、単語ボックスに一致するどこにありますか?またはそのような正規表現はありませんでしょうか?

クアンホアン:

あなたはしたい\b単語の区切りを示し、その後、余分なスペースを削除します:

x.str.replace(r'\b(\s?box\s?)\b', ' ').str.strip()

出力:

0           abcd
1      abcd abcd
2           abcd
3    abcdboxabcd
dtype: object

おすすめ

転載: http://10.200.1.11:23101/article/api/json?id=391654&siteId=1