Как изменить значения в строке с определенным значением с помощью регулярных выражений? - PullRequest
0 голосов
/ 22 февраля 2019

имеют df со значениями

    0               1 
0 RS 125       | password1
1 EURO 25      | password2
2 DNR 30       | password3

Используя регулярное выражение, как изменять значения этих значений сразу, как значения после RS, EURO, DNR должны быть заменены на 100

вывод должен быть

    0               1 
0 RS 100       | password1
1 EURO 100      | password2
2 DNR 100      | password3

Попробовал это

def Currency(0):

    pattern = re.compile("(Rs |EURO |DNR |)")
    result = pattern.match(name)

Попытка заменить подходящие.

1 Ответ

0 голосов
/ 22 февраля 2019

Вы можете использовать

df['col'] = df['col'].str.replace(r'(?i)((?:Rs|EURO|DNR)\s*)\d+', r'\g<1>100')

Или, если вы хотите сопоставить названия валют как целые слова, перед группой захвата добавьте границу слова \b:

r'(?i)\b((?:Rs|EURO|DNR)\s*)\d+'
      ^^

См. это регулярное выражение demo .

Подробности

  • (?i) - флаг без учета регистра
  • ((?:Rs|EURO|DNR)\s*) -Группа 1 (\g<1> в шаблоне замены относится к этому значению):
    • (?:Rs|EURO|DNR) - Rs или EURO или DNR
    • \s* - 0+ пробелов
  • \d+ - одна или несколько цифр

См. Демонстрационную версию regex .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...