更快地删除pandas dataframe列中的标点符号和特殊字符

时间:2018-01-19 20:17:41

标签: python regex pandas

我正在使用以下代码从pandas dataframe中的列中删除特殊字符和标点符号。但是这种使用regex.sub的方法并不具有时间效率。还有其他选择我可以尝试提高时间效率并删除标点符号和特殊字符吗?或者我正在删除特殊字符并将其解析回列的方式,pandas dataframe导致我主要计算烧伤?

for n, string in data['text'].iteritems():
   data['text'] = re.sub('([{string.punctuation}“”¨«»®´·º½¾¿¡§£₤‘’])','', string)

2 个答案:

答案 0 :(得分:2)

一种方法是仅保留字母数字。考虑这个数据框

df=pd.DataFrame({'Text':['#^#346fetvx@!.,;:', 'fhfgd54@!#><?']})

    Text
0   #^#346fetvx@!.,;:
1   fhfgd54@!#><?

您可以使用

df['Text'] = df['Text'].str.extract('(\w+)', expand = False)

    Text
0   346fetvx
1   fhfgd54

答案 1 :(得分:0)

使用正则表达式和 lambda 函数:

for loop

这将删除除字母和数字之外的所有字符。