Я пытаюсь удалить все, кроме букв, цифр и! ? , ; , @ 'из моего python pandas текста столбца. Я уже прочитал некоторые другие вопросы по topi c, но все еще не могу заставить мою работу.
Вот пример того, что я делаю:
import pandas as pd
df = pd.DataFrame({'id':[1,2,3,4],
'text':['hey+ guys! wuzup',
'hello p3ople!What\'s up?',
'hey, how- thing == do##n',
'my name is bond, james b0nd']}
)
Тогда у нас есть следующая таблица:
id text
1 hey+ guys! wuzup
2 hello p3ople!What\'s up?
3 hey, how- thing == do##n
4 my name is bond, james b0nd
Теперь попробуйте удалить все, кроме букв, номера и! ? , ; , @ '
Первая попытка:
df.loc[:,'text'] = df['text'].str.replace(r"^(?!(([a-zA-z]|[\!\?\.\;\,\@\'\"]|\d))+)$",' ',regex=True)
вывод
id text
1 hey+ guys! wuzup
2 hello p3ople!What's up?
3 hey, how- thing == do##n
4 my name is bond, james b0nd
Вторая попытка
df.loc[:,'text'] = df['text'].str.replace(r"(?i)\b(?:(([a-zA-Z\!\?\.\;\,\@\'\"\:\d])))",' ',regex=True)
вывод
id text
1 ey+ uys uzup
2 ello 3ople hat p
3 ey ow- hing == o##
4 y ame s ond ames 0nd
Третья попытка
df.loc[:,'text'] = df['text'].str.replace(r'(?i)(?<!\w)(?:[a-zA-Z\!\?\.\;\,\@\'\"\:\d])',' ',regex=True)
output
id text
1 ey+ uys! uzup
2 ello 3ople! hat' p?
3 ey, ow- hing == o##
4 y ame s ond, ames 0nd
Afterwars Я также попытался использовать функцию re.sub (), используя те же шаблоны регулярных выражений, но все же не смог получить ожидаемый результат. результат. Принимая во внимание этот ожидаемый результат следующим образом:
id text
1 hey guys! wuzup
2 hello p3ople!What's up?
3 hey, how- thing don
4 my name is bond, james b0nd
Кто-нибудь может мне помочь с этим?
Ссылки, которые я видел поверх topi c:
Есть ли способ удалить все, кроме символов, цифр и '-' из строки
Как проверить, содержит ли текстовый столбец в моем фрейме данных список возможных шаблонов, допускающих опечатки ?
удаление новых строк из грязных строк в pandas ячейках данных?
https://stackabuse.com/using-regex-for-text-manipulation-in-python/