删除仅包含字符(或不含其他数值的邮政编码)的任何观察结果

问题描述 投票:0回答:1

我正在尝试为有缺陷的地址创建一个标志,我的想法是删除所有没有数值的观察结果。我不需要邮政编码,因此第一步是删除这些邮政编码),然后应用第二个过滤器来删除任何没有非剩余数值的内容。

在下面的数据框中,我只想保留第二行(包含数字地址)。第一行仅是字符,第三行虽然包含数字值,但实际上只包含五位数的邮政编码。

d = {'col1': ['San Diego County, California', '4150 Ute Dr, San Diego, California', 'Vista del Lago, Perris, California, 92570'], 'col2': ['prov_1', 'prov_2', 'prov_3']}
df = pd.DataFrame(data=d)

df

python pandas
1个回答
0
投票

使用正则表达式来匹配 1-4 位数字,后跟可选空格,然后是字母怎么样?

out = df[df['col1'].str.contains(r'\d{1,4}\s*[a-zA-Z]+')]

输出:

                                 col1    col2
1  4150 Ute Dr, San Diego, California  prov_2

正则表达式演示

© www.soinside.com 2019 - 2024. All rights reserved.