首页 >后端开发 >Python教程 >从 Pandas DataFrame 中删除标点符号的最快方法是什么?

从 Pandas DataFrame 中删除标点符号的最快方法是什么?

Susan Sarandon
Susan Sarandon原创
2024-11-19 06:45:03367浏览

What is the Fastest Way to Remove Punctuation from a Pandas DataFrame?

使用 Pandas 快速去除标点符号

标点符号去除是一项常见的文本清理任务。虽然 pandas str.replace 是一种广泛使用的方法,但对于大型数据集来说,它的性能可能不够。

str.replace 的替代方案:

  • regex.sub: 使用 re 模块执行基于正则表达式的替换。此选项比 str.replace 提供了改进的性能。
  • str.translate:利用 C 实现的 str.translate 函数,从而显着提高速度。

基准测试:

  • str.translate 表现出最佳性能,其次是 regex.sub,然后是 str.replace。
  • 性能差距随着增加而拉大数据集大小。

注意事项:

  • regex.sub 和 str.translate 无法处理 DataFrame 中的 NaN 值。
  • 当数据包含默认标点符号排除可能排除的字符时,str.translate 需要特殊处理。

代码:

import pandas as pd
import re

# Regex.sub
df['text'] = [re.compile(r'[^\w\s]+').sub('', x) for x in df['text'].tolist()]

# str.translate
punct = '!"#$%&\'()*+,-./:;<=>?@[\]^_`{|}~'
transtab = str.maketrans(dict.fromkeys(punct, ''))
df['text'] = '|'.join(df['text'].tolist()).translate(transtab).split('|')

以上是从 Pandas DataFrame 中删除标点符号的最快方法是什么?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn