问题描述
我抓取了一些网站来收集公司数据。地址数据就是其中之一。由于 HTML 标签,我只能抓取一个“标签”中的数据。下面是我的数据输出示例。
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
现在,我需要将邮政编码(仅邮政编码)提取到一个新列中以进行进一步分析。我主要在数据清理阶段使用熊猫。 (我要查清楚每个公司在哪个省)
我搜索了许多选项来找到提取邮政编码的方法,因此我没有成功。 任何帮助将不胜感激!
解决方法
我认为您可以使用正则表达式。
示例:
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
,如果问题中发布的示例输出是数据框中名为 Address
且类型为 object
的列中的值,则可以按如下方式创建带有提取的邮政编码的新列:>
df['Zip Code'] = " ".join(str(df['Address']).split(" ")[2:4])