python删除标点_python – 使用pandas快速删除标点符号

这篇博客介绍了如何在Python中使用pandas和正则表达式高效地从文本中删除标点符号。通过比较str.replace、regex.sub和str.translate三种方法,展示了str.translate在性能上的优势。文章提供了具体的代码示例和性能基准测试,以帮助选择适合特定需求的解决方案。
摘要由CSDN通过智能技术生成

建立

出于演示的目的,让我们考虑一下这个DataFrame.

df = pd.DataFrame({'text':['a..b?!??', '%hgh&12','abc123!!!', '$$$1234']})

df

text

0 a..b?!??

1 %hgh&12

2 abc123!!!

3 $$$1234

下面,我逐一列出替代方案,以提高性能

str.replace

包含此选项可将默认方法建立为比较其他更高性能解决方案的基准.

这使用pandas内置的str.replace函数,它执行基于正则表达式的替换.

df['text'] = df['text'].str.replace(r'[^\w\s]+', '')

df

text

0 ab

1 hgh12

2 abc123

3 1234

这很容易编码,并且可读性很强,但速度很慢.

regex.sub

这涉及使用re库中的sub函数.为性能预编译正则表达式模式,并在列表解析中调用regex.sub.如果你可以节省一些内存,事先将df [‘text’]转换为一个列表,你将获得一个很好的性能提升.

import re

p = re.compile(r'[^\w\s]+')

df['text'] = [p.sub('', x) for x in df['text'].tolist()]

df

text

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值