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

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

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

推荐答案

使用regex匹配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

regex demo

请注意,只要数字后面有字母,这也应该在不指定数字限制的情况下起作用:

out = df['col1'].str.extract(r'(\d+\s*[a-zA-Z]+)', expand=False)

Python相关问答推荐

Chatgpt API不断返回错误:404未能从API获取响应

2维数组9x9,不使用numpy.数组(MutableSequence的子类)

Deliveryter Notebook -无法在for循环中更新matplotlib情节(保留之前的情节),也无法使用动画子功能对情节进行动画

根据在同一数据框中的查找向数据框添加值

Django mysql图标不适用于小 case

如何避免Chained when/then分配中的Mypy不兼容类型警告?

有症状地 destruct 了Python中的regex?

发生异常:TclMessage命令名称无效.!listbox"

按顺序合并2个词典列表

如何在Python中并行化以下搜索?

Scrapy和Great Expectations(great_expectations)—不合作

python中csv. Dictreader. fieldname的类型是什么?'

Python—转换日期:价目表到新行

如果有2个或3个,则从pandas列中删除空格

语法错误:文档. evaluate:表达式不是合法表达式

一个telegram 机器人应该发送一个测验如何做?""

删除特定列后的所有列

SpaCy:Regex模式在基于规则的匹配器中不起作用

pytest、xdist和共享生成的文件依赖项

对于数组中的所有元素,Pandas SELECT行都具有值