Как удалить одну или несколько букв x из серии pandas?

#python #pandas

#python #pandas

Вопрос:

Я пытался удалить слова, содержащие только букву x, из серии pandas, но это работает не так, как ожидалось. Как удалить такие слова, x xx xxx xxxx которые могут иметь любое количество x только из серии pandas?

Моя попытка

 import numpy as np
import pandas as pd
pd.set_option('max_colwidth',500)

data = np.array(['transworld system inc trying colect xx xxxx debt mine owed inacurate',
       'complaint cals ocur betwen xx xx xx xx cel job ',
       'company violated',
       'previously xxxx xxxx xxxx requested experian actualy mine xxxx xxxx instead',
       'company xx trans union xx noticed '])
                
                
s = pd.Series(data)
s.str.replace(r'(sx s)',r' ',regex=True)
  

Вывод

Я ожидал, что пробел * N пробел заменен одним пробелом, но он не работает. Как можно устранить проблему?

Ответ №1:

Вы можете использовать b для границы слова, поэтому 'xxx abcd' можете быть заменены. Поскольку x и могут чередоваться, и вы бы удалили их все, вы можете просто использовать:

 s.str.replace(r'b[xs] b',' ')
  

Вывод:

 0    transworld system inc trying colect debt mine ...
1                  complaint cals ocur betwen cel job 
2                                     company violated
3    previously requested experian actualy mine ins...
4                         company trans union noticed 
dtype: object