如何使用python仅从地址列中删除房屋/建筑编号

如何使用python仅从地址列中删除房屋/建筑编号,python,regex,split,Python,Regex,Split,我的数据框中有一列地址。我想删除字符串中的门牌号,只使用街道名称来制作树形图或wordcloud。 但是,有些地址在街道名称前有时有3位或更多数字。另外,一些街道名称本身有数字,因此我无法使用%d删除str.split或regex中的数字。我最近开始学习python,所以我不知道如何拆分这种字符串。任何帮助都将不胜感激 以下是列中给出的地址示例: 诺诺街3150号 东103街139号 412E下瓦克博士 东94街300号 南大街10340号J 619 S KEDVALE AVE您可以使用正则表达

我的数据框中有一列地址。我想删除字符串中的门牌号,只使用街道名称来制作树形图或wordcloud。 但是,有些地址在街道名称前有时有3位或更多数字。另外,一些街道名称本身有数字,因此我无法使用%d删除str.split或regex中的数字。我最近开始学习python,所以我不知道如何拆分这种字符串。任何帮助都将不胜感激

以下是列中给出的地址示例: 诺诺街3150号 东103街139号 412E下瓦克博士 东94街300号 南大街10340号J
619 S KEDVALE AVE

您可以使用正则表达式:^\d*\S


假设所有房屋地址中都没有空格,可以将字符串按第一个空格拆分。用法示例:

s="3150 N Honore St"
new_s=s.split(" ",1)[1]

要分解-s.split,1在第一个空格处拆分字符串,但仅拆分1次。这将形成一个字符串列表,看起来像['3150','N Honore St']。因为您只需要后一部分,所以[1]会选择它。

我刚开始使用Python中的正则表达式,但下面是我的尝试:

\d+\s[A-Z]\s+(.+)

如果您想查看匹配项,这里有一个快速链接:

如果我在字符串对象上使用它,它会工作,但是如何使它在数据集或序列的列上工作?地址=df[街道地址]regex2=r^\d*\s matches2=re.finditerregx2,地址,re.MULTILINE我在运行matches2 TypeError时遇到以下错误:通过每一行执行预期的string或bufferLoop并解析strings我尝试通过行循环并将字符串添加到列表中,但没有成功l=[]对于索引,df.iterrows中的行:matches2=re.finditerregx2,行[Street Address]l.appendmatches2当我打印时,我在每个实例中获取,而不是街道名称的字符串