Я использовал BeautifulSoup и pandas для создания csv с колонками, содержащими коды ошибок и соответствующие сообщения об ошибках.Форматирование содержимого столбца pandas. Удаление завершающего текста и цифр
Перед форматированием, столбцы выглядят что-то вроде этого
-132456ErrorMessage
-3254Some other Error
-45466You've now used 3 different examples. 2 more to go.
-10240 This time there was a space.
-1232113That was a long number.
Я успешно изолировали текст кодов, как это:
dfDSError['text'] = dfDSError['text'].map(lambda x: x.lstrip('-'))
Это возвращает только то, что я хочу.
Но я изо всех сил пытался придумать решение для кодов.
Я попытался это:
dfDSError['codes'] = dfDSError['codes'].replace(regex=True,to_replace= r'\D',value=r'')
Но что будет добавлять номера из сообщения об ошибке в конце номера кода. Так что для третьего примера выше, а не 45466, я бы получил 4546632. Также я бы хотел оставить знак минус минус.
Я подумал, что, возможно, я мог бы каким-то образом объединить rstrip() с регулярным выражением, чтобы найти там, где есть незанятое пространство или пробел, и удалить все остальное, но я не увенчался успехом.
for_removal = re.compile(r'\d\D*')
dfDSError['codes'] = dfDSError['codes'].map(lambda x: x.rstrip(re.findall(for_removal,x)))
TypeError: rstrip arg must be None, unicode or str
Любые предложения? Благодаря!