как создать собственный список знаков препинания, которые будут удалены в python - PullRequest
1 голос
/ 05 февраля 2020

Я хочу удалить пунктуацию из разных типов сценариев, Engli sh, Arabi c и т. Д., Если я использовал обычный способ, используя pandas при чтении кадра данных, для части Engli sh это работает хорошо, но при изменении скрипта он удалит все знаки препинания и все, что не является буквами, которые я не хочу, так что есть ли способ, использующий тот же метод str.replace для создания собственного списка пунктуации, которая будет использоваться

В настоящее время я использую это, что удаляет все знаки пунктуации

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

, но когда я пытаюсь сделать замену списка, я хочу, чтобы он не работал, есть ли способ создать свой собственный список что-то вроде этого

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

так что с,? ! , :; 'будет удалено, а все остальное за пределами этого диапазона останется

1 Ответ

2 голосов
/ 05 февраля 2020

Здесь необходимо выделить некоторые специальные символы регулярного выражения, такие как . или ?:

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

Или использовать re.escape:

import re

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

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