我有一个数据帧,其地址数据的结构如下:
tbm_a['address']
Rue de blabla 20
Vossenstraat 7
Rue Père Jean 3 boite Z
Rue XSZFEFEF 331
我想将其与街道一栏,与门号一栏。
我尝试了这个for循环,但失败了:
import re
s = list(zip(tbm_a['address']))
for addr in s:
tbm_a['street'] = re.findall('[^\d]*', addr)[0].strip()
tbm_a['num'] = str(addr[len(street):].strip().split(' '))
然后我尝试使用此方法,并得到了号码:
tbm_a['address_num'] = tbm_a['address'].str.extract('(?P<number>\d+)', expand=True)
但是我无法获得街道名称。有什么建议吗?
答案 0 :(得分:0)
根据您的数据,您可以执行以下操作:
df.address.str.extract('(?P<Street>\D+) (?P<Number>\d+.*)')
输出:
Street Number
0 Rue de blabla 20
1 Vossenstraat 7
2 Rue Père Jean 3 boite Z
3 Rue XSZFEFEF 331
请记住,如果您的街道名称中有数字,则此操作将失败。 5th avenue
。