как заменить + хх в панде str заменить - PullRequest
0 голосов
/ 18 сентября 2018

Я использую Python 2.7.12 и pandas 0.20.3, у меня есть кадр данных, как показано ниже, я хочу заменить столбец с именем number, этот столбец dtype является объектом, когда я пытаюсь заменить +91 в этом столбце I 'получая ошибку, как показано ниже,

          number
0  +9185600XXXXX
1  +9199651XXXXX
2     99211XXXXX
3     99341XXXXX
4  +9199651XXXXX

sre_constants.error: nothing to repeat

полная трассировка,

Traceback (последний вызов был последним): файл "encoder.py"строка 21 в файле df ['number'] = df ['number']. str.replace ('+ 91', '') "/home/hduser/.local/lib/python2.7/site-packages/pandas/core/strings.py ", строка 1574, в файлах replace flags = flags) Файл" /home/hduser/.local/lib/python2.7/site-packages/pandas/core/strings.py ", строка 424, в str_replace regex = re.compile (pat, flags = flags) Файл "/usr/lib/python2.7/re.py", строка 194, при компиляции возвращает _compile (pattern, flags) файл "/ usr / lib /python2.7 / re.py ", строка 251, в _compile error error, v # неверное выражение sre_constants.error: нечего повторять

Но когда я заменяю 91, это работает, как я ожидал,Это не работает, когда я ставлю + в префиксе, пожалуйста, помогите мне такЭта проблема возникает.

Ошибка возникает при

df['number']=df['number'].str.replace('+91','')

Ответы [ 2 ]

0 голосов
/ 18 сентября 2018
import pandas as pd
data={'number':['+9185600XXXXX','+9199651XXXXX']}
f=pd.DataFrame(data)
f['number']=f['number'].str.replace('\+91','')
print(f)
0 голосов
/ 18 сентября 2018

Вы можете избежать специального значения регулярного выражения + (one or more repetitions), например:

df['number'] = df['number'].str.replace('\+91','')

Или использовать параметр regex=False:

df['number'] = df['number'].str.replace('+91','', regex=False)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...