首页 > 解决方案 > 如何从熊猫系列中删除一个或多个字母 x?

问题描述

我一直在尝试从熊猫系列中删除仅包含字母 x 的单词,但它没有按预期工作。如何x xx xxx xxxx从熊猫系列中删除只能有任意数量 x 的单词?

我的尝试

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 空格替换为一个空格,但它不起作用。如何解决问题?

标签: pythonpandas

解决方案


您可以\b用于单词边界,因此'xxx abcd'可以被替换。由于xand 可以交错并且您可以将它们全部删除,因此您可以使用:

s.str.replace(r'\b[x\s]+\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

推荐阅读