【发布时间】:2019-05-17 10:34:07
【问题描述】:
我有一个包含文本字符串的 df.LOCATION 列。每个字符串包括反映始发地和目的地地址的文本。我的目标是拆分起点和终点,这样我就可以创建两个单独的列。
大多数情况下,源文本和目标文本由字符串模式“to”分隔,例如“1234 A 街至 9876 B 街”。我用过
map(lambda x: re.split(' to ', x), df.LOCATION)
这很好用,除了在某些行中我在文本中有更多“to”,例如 “从 1234 A St. 需要到提车到 9876 B St.” - 在这种情况下,我仍然想将起点和终点拆分为两个字符串,但我上面的代码将返回三个列表,因为我以粗体突出显示了额外的 ' to ' 字符串。
所以为了解决这个问题,我已经实现了
map(lambda x: re.split(' to \d+', x), dfJobs.LOCATION))
这会正确搜索字符串,其中我不仅有文本“to”,而且还有任何数字,表明它后面有一个新地址,即目的地。这是可行的,除了它实际上也会删除目标地址中的那些初始数字,但我想保留它们。
换句话说,我想检测上述模式,当发现它们时,仅根据模式的“到”部分进行拆分。
【问题讨论】:
标签: python regex python-3.x pandas split