python - Pandas:将子字符串与字符串列表匹配
问题描述
我有一个熊猫系列中所有美国城市(150k+)的列表,比如
import pandas as pd
master_city = pd.Series(['Lake Ketchum', 'Arletta', 'Glenoma', ..., 'Curlew'])
我有另一个系列,其中包含收件人列表,例如:
addresses = pd.series(['Headquarters 1120 N Street Lake Ketchum 916-654-5266', 'District 1 1656 Union Street Glenoma 707-445-6600', '1657 Riverside Drive Redding, CA 96001'])
我想查看地址系列中的每个地址是否包含主城市系列中任何城市的完全匹配。这是为了验证所有地址中的城市名称是否正确。在这种情况下,地址 1、2 应该匹配,因为它包含 Lake Ketchum 和 Glenoma 的完全匹配。
这可以用任何系列字符串方法以矢量化方式完成吗?
解决方案
我认为对于不太复杂的情况下的完全匹配,您可以尝试以下操作:
for item in master_city:
matches = addresses[addresses.str.contains(item)]
# matches is a pd series with indices of addresses matching to the `item`
# do whatever with matches
推荐阅读
- windows - 如何使用cmd中的嵌套for循环将目标文件替换为源位置的另一个文件
- python - 从 django 中的表中过滤掉空值
- java - 在同一上下文中使用 Spring Boot 2 OAuth Client 和 Resourcesserver
- java - 适配器抛出 java.lang.NullPointerException
- python - PyWin32 (226) 和虚拟环境
- r - eventReactive 对所有输入值做出反应
- java - 找不到属性的 setter 方法:spring boot 中的错误
- xquery - 删除marklogic中具有多个版本的文档的最佳方法
- scala - Scala - 如何以函数式风格重构代码
- python - 如何使用for/while循环在python中编写过滤函数?