У меня есть столбец df.LOCATION, который содержит текстовые строки.Каждая строка содержит текст, отражающий адреса отправителя и получателя.Моя цель - разделить источник и пункт назначения, чтобы я мог создать два отдельных столбца.
В большинстве случаев текст источника и пункта назначения разделяется строковым шаблоном от «до», например, от 1234 A St. до 9876 BСв ".Я использовал
map(lambda x: re.split(' to ', x), df.LOCATION)
Это прекрасно работает, за исключением того, что в некоторых строках у меня есть больше "to" в тексте, например: "От 1234 A St. нужно до забрать грузовик до 9876 BСв»- в таком случае я все же хотел бы разбить на две строки для источника и места назначения, но мой код выше вернет три списка из-за дополнительной строки «to», которую я выделил жирным шрифтом.
Итак, для решения этой проблемы я реализовал
map(lambda x: re.split(' to \d+', x), dfJobs.LOCATION))
. При этом корректно выполняется поиск строк, в которых есть не только текст «to», но также любые цифры, указывающие на наличие нового адреса послеэто то есть пункт назначения.Это работает, за исключением того, что фактически удаляет эти начальные цифры в адресе назначения, но я хотел бы сохранить их.
Другими словами, я хотел бы обнаружить шаблоны, такие как выше, и когдаони найдены, разделены только по части «до» шаблона.