熊猫:将子字符串与字符串列表匹配

时间:2018-10-28 05:28:25

标签: python pandas

我有像

这样的大熊猫系列中所有美国城市(超过15万个)的列表
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应该匹配,因为它包含与凯奇姆湖和Glenoma完全匹配的地址。

可以使用任何系列字符串方法以矢量化方式完成此操作吗?

1 个答案:

答案 0 :(得分:0)

我认为,在不那么复杂的情况下进行精确匹配,您可以尝试以下方法:

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