如何创建自己的要在 python 中删除的标点符号列表

how to create your own list of punctuation to be removed in python

如果我在阅读数据框时使用 pandas 的正常方式,我想从不同类型的脚本、英语、阿拉伯语等中删除标点符号,对于英语部分它工作正常但是当有脚本更改,它将删除所有标点符号和任何不是我不想要的字母的东西,所以有没有办法使用相同的方法 str.replace 来创建你自己的要使用的标点符号列表

我目前正在使用它来删除所有标点符号

dataframe['columnname'].str.replace('[^\w\s]', '')

但是当我尝试替换我想要的列表时它不起作用有没有办法创建我自己的类似列表

dataframe['columnname'].str.replace(',,?, !, .,:, ;', '')

所以有什么,? ! . : ; ' 将被删除,此范围之外的任何其他内容都将保留

这里有必要对一些特殊的正则表达式字符进行空格,例如 .?:

dataframe['columnname'] = dataframe['columnname'].str.replace("[,\?!\.:;']", '')

或使用re.escape:

import re

pat = '[' + re.escape(",?!.:;'") + ']'
print (pat)
[,\?!\.:;']

dataframe['columnname'] = dataframe['columnname'].str.replace(pat, '')