作为介绍,我对python很新,我只知道如何使用pandas主要用于数据分析。
我目前有2个100多个条目的列表,“关键字”和“组”。
我想生成一个输出(理想情况下是pandas中的数据帧),其中对于列表“Keywords”的每个条目,使用levenshtein距离方法分配列表“Groups”的最近条目。
感谢您的支持!
from editdistance import eval as levenshtein
import pandas as pd
keywords = ["foo", "foe", "bar", "baz"]
groups = ["foo", "bar"]
assigned_groups = [min(groups, key=lambda g: levenshtein(g, k))
for k in keywords]
df = pd.DataFrame({"Keyword": keywords, "Group": assigned_groups})
# Group Keyword
# 0 foo foo
# 1 foo foe
# 2 bar bar
# 3 bar baz
使用editdistance
。通过pip install editdistance
获取它。
请注意,此算法是O(mn)
,其中m
是关键字的长度,n
是组的长度。