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 \b
indicando 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