Регулярное выражение для удаления определенных частей строки в столбце dataframe python

#python #regex #string #dataframe #re

#python #регулярное выражение #строка #dataframe #python-re

Вопрос:

Я работаю с фреймом данных, который содержит адреса, и я хочу удалить определенную часть строки. Например, например набор адресов

И я хочу удалить строку, поскольку взял слова «ССЫЛКА:» и «ссылка:» в конец предложения. Также я хочу создать новый столбец, который выглядит примерно так (без слова REFERENCE:/reference: и следующей буквы этих слов) Не могли бы вы помочь мне сделать это в регулярном выражении? Я хочу, чтобы новый столбец выглядел примерно так: edit_column

Комментарии:

1. Вы должны поместить имеющийся у вас код и выходные данные в текст, чтобы мы могли легко работать с ними.

Ответ №1:

Вы можете использовать некоторые регулярные выражения для получения желаемых результатов.

 df = pd.DataFrame({"address": ["Street Pases de la Reforma #200 REFERENCE: Green house", "Street Carranza #300 12 amp; 13 REFERENCE: There is a tree"]})

df.address.str.findall(r". ?(?=REFERENCE)").explode()

0    Street Pases de la Reforma #200 
1       Street Carranza #300 12 amp; 13
  

Объяснение шаблона регулярных выражений:

 . ? matches any character (except for line terminators)
 ? Quantifier — Matches between one and unlimited times, as few times as possible, expanding as needed (lazy)
Positive Lookahead (?=REFERENCE)
  

Ответ №2:

Регулярное выражение должно выглядеть следующим образом:

 import re

discard_re = re.compile('(reference:.*)', re.IGNORECASE | re.MULTILINE)
  

затем вы можете добавить новый столбец:

 df['address_new'] = df.addresses.map(lambda x: discard_re.sub('', x))