Поменять слово в строке дата фрейма
Есть файл с распарсеными адресами, но могут встречаться такие аддреса: " Москва, Волынская 1-я, 32", нужно получить " Москва, 1-я Волынская , 32" Неправильный адрес может встречаться вначале/середине/конце строки.
df['Address'] = np.where((df['Address'].str.contains('Вольская 1-я') == True), 'Вольская 1-я', '1-я Вольская')
пока больше чем код выше не получилось ничего написать
Ответы (1 шт):
Автор решения: MaxU
→ Ссылка
Пример:
In [370]: df = pd.DataFrame({"Address": [" Москва, Волынская 1-я, 32", "Волынская 1-я, 32", " Москва, Волынская 1-я, 32, 1"]})
In [371]: df
Out[371]:
Address
0 Москва, Волынская 1-я, 32
1 Волынская 1-я, 32
2 Москва, Волынская 1-я, 32, 1
In [372]: res = df["Address"].str.split(", ", expand=True).applymap(lambda x: re.sub(r"(\w+)\s+(\d.*)", r"\2 \1", x) if x else x).apply(lambda row: row.str.cat(sep=", "), axis=1)
In [373]: res
Out[373]:
0 Москва, 1-я Волынская, 32
1 1-я Волынская, 32
2 Москва, 1-я Волынская, 32, 1
dtype: object