如何解决不同数据帧python之间的大规模字符串匹配
我正在尝试改进查找表的运行时间。
dest_df = pd.DataFrame({"dest":["uk LHR","from ROM","City:LONDON","planetoronto"," rome rome","junk plane"]}) ## 300,000 rows
city_df_lookup=pd.DataFrame({"places":["london"," paris","toronto","rome"],"code":["LHR","PAR","YTO","ROM"]}) ## around 10,000 rows
code = city_df_lookup.code.tolist()
places = city_df_lookup.places.tolist()
def select(x):
for co,pl in zip(code,places):
if co in x:
return pl
dest_df["clean_dest"] = dest_df["dest"].apply(select)
dest_df.head()
dest dest_match
0 uk LHR london
1 from ROM rome
2 City:LONDON None
3 Planetoronto None
4 rome rome None
5 junk plane None
不幸的是,上面的代码耗时太长,我还希望循环尝试在 city_df_lookup.places 和 dest_df.dest 列之间进行字符串匹配
所需的输出是:
dest dest_match
0 uk LHR london
1 from ROM rome
2 City:LONDON london
3 Planetoronto tornoto
4 rome rome rome
5 junk plane No Match
我正在考虑使用 ahocorasick 但不确定是否有更简单的方法。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。