从具有完整地址的字符串中提取邮政编码

Extracting zip code from a string with full address

我抓取了一些网站来收集公司数据。地址数据就是其中之一。由于 HTML 标签,我只能抓取一个 'tag' 内的数据。下面是我的数据输出示例。

Streetname housenumber zip-code city country
Street 1 1234 AB Amsterdam Netherlands
Longerstreetname 22 9876 XY Den Haag Netherlands
Name: Address, Length: 314, dtype: object

现在,我需要将邮政编码(仅邮政编码)提取到新列中以供进一步分析。我主要在数据清理阶段使用 pandas。 (我要查每个公司在哪个省)

我已经搜索了很多选项来找到提取邮政编码的方法,因此我没有成功。 非常感谢任何帮助!

如果问题中发布的示例输出是数据框中类型为 object 的名为 Address 的列中的值,则可以创建一个包含提取的邮政编码的新列,如下所示:

df['Zip Code'] = " ".join(str(df['Address']).split(" ")[2:4])

我想你可以使用正则表达式。

示例:

import re


address = '7802 Grant Avenue Egg Harbor Township, NJ 08234'
us_zip = r'(\d{5}\-?\d{0,4})'
zip_code = re.search(us_zip, address)
zip_code.group(1)

重要提示: 世界各地的邮政编码没有特定的模式。如果你想抓取来自不同国家的公司,你应该为所有这些公司实施正则表达式。

希望这个文件能帮到你。 zip codes regex