如何在 python pandas 中进行高效的部分字符串匹配?

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

我有一个大约 50k 字符串的数据框,其中包含像这样的城市名称的一些变体。

城市 变化
新德里 新德里
新德里 德里
新德里 迪利
新德里 nayi dilli
班加罗尔 班加罗尔
班加罗尔 blr
班加罗尔 班加罗尔
迈索尔 mysuru
迈索尔 mysur
迈索尔 迈索尔
迈索尔 mysor

我有一个倒排索引(200 万个变化),它是从存在变化的较大数据集中创建的类似但嘈杂的变化。我想计算上表中的每个变体至少部分出现在较大数据集中的次数。

查找表:

city_variations 指数 计数
新迪利#num [2,3,51,44,33] 5
新迪利普莱斯 [231,3,11,44] 4
纽约 [1231,2211] 2
#num new dilli##num [211,4223,532] 3

我期待我的结果包含

 new dilli -> new dilli #num, new dilliplace and #num new dilli##num

我的代码也在下面添加,这有效,但需要永远!有人可以建议我优化它的方法吗?


def if_contains(pattern,df,col,sum_col):
    return df[df[col].str.contains(pattern)][sum_col].sum()

inputs['count_of_vns_with_pattern']=inputs.apply(lambda x:if_contains(x['variation'],inv_index,'city_variations','No.of times present in inv index'),axis=1)
python pandas optimization lookup
© www.soinside.com 2019 - 2024. All rights reserved.