Python 从地址提取邮政编码

Python 从地址提取邮政编码,python,pandas,Python,Pandas,我有一个带有地址列的住房数据集。我想把邮政编码和价格之间的关系形象化。但是,地址的格式为(伯明翰埃德巴斯顿诺福克路B15)。如何单独提取邮政编码 我试过使用 select substring_index(Address, ',', -1) 但它给了我一个错误: File "<ipython-input-29-2b936e3b990e>", line 1 select substring_index(Address, ',', -1)

我有一个带有地址列的住房数据集。我想把邮政编码和价格之间的关系形象化。但是,地址的格式为
(伯明翰埃德巴斯顿诺福克路B15)
。如何单独提取邮政编码

我试过使用

select substring_index(Address, ',', -1) 
但它给了我一个错误:

File "<ipython-input-29-2b936e3b990e>", line 1
    select substring_index(Address, ',', -1)
                         ^
SyntaxError: invalid syntax
文件“”,第1行
选择子字符串索引(地址,,,-1)
^
SyntaxError:无效语法
在本例中,如何仅提取邮政编码


既然数据是一个分类变量,而不是连续的,那么最好的可视化方法是什么。我想我应该对邮政编码进行分组,但我是否要创建一个伪码?

如果您的数据位于pandas数据帧中,您可以使用函数extract(),如下所示:

df[“PostCode”]=df[“Address”].str.extract(r)([A-Z]\d+)

函数
extract()
使用regexp提取首个大写字母,后跟表示所需邮政编码的一个或多个数字


希望有帮助

你能添加更多关于你的数据的例子吗???这是MySQL还是Python代码?@GiovaniSalazar,数据上的其他列是@code不同,这是Python pls。@DataNoveler有一个类型错误TypeError:extract()得到一个意外的关键字参数'regex',我试过了,得到了这个通知。。。C:\Users\Dell pc\Anaconda3\lib\site packages\ipykernel\u launcher.py:1:settingwithcopy警告:试图在数据帧中的切片副本上设置值。尝试使用.loc[row\u indexer,col\u indexer]=value,请参见文档中的注意事项:“启动IPython内核的入口点。请稍候!这确实做到了。我现在才发现。非常感谢你,伙计。如果给出AB42,它对邮政编码的第一部分有效,这不会失败吗?@v25这将是一个有趣的测试。@v25当然这个regexp只匹配像B15,B16,。。。对于像AB42这样的邮政编码,regexp应该是:
([a-Z]?[a-Z]\d+)
,意思是:0或1个大写字母(用
字符指定),后跟一个大写字母,后跟一个或多个数字