将熊猫地址分为街道和门牌号码

时间:2020-04-01 15:16:19

标签: regex string pandas

我有一个数据帧,其地址数据的结构如下:

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)

但是我无法获得街道名称。有什么建议吗?

1 个答案:

答案 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