Removendo palavra da série panda de string usando regex

Bruno Mello :

Suponha que eu tenho as seguintes séries pandas:

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

E eu quero remover todas as ocorrências de caixa da palavra (note que eu não quero para remover todas as ocorrências de caixa de substring), eu fiz assim:

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

O que me dá o que eu esperava:

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

Gostaria de saber se existe uma maneira de fazer isso usando regex, por exemplo:

x.str.replace(regex, '')

Onde regex é a regex corresponde a caixa de palavra, Tenho pesquisado muito sobre regex, mas não consigo encontrar uma resposta, é possível? Ou não existe tal regex assim?

Quang Hoang:

Você quer \bindicando separação palavra, e depois tira os espaços extras:

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

Resultado:

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

Acho que você gosta

Origin http://10.200.1.11:23101/article/api/json?id=391651&siteId=1
Recomendado
Clasificación