作为介绍,我对python很新,我只知道如何使用pandas主要用于数据分析。
我目前有2个100多个条目的列表,"关键字" 和"群组" 。
我想生成一个输出(理想情况下是pandas中的数据框),其中列表的每个条目"关键字" ,列表中最近的条目使用 levenshtein距离方法分配"群组" 。
感谢您的支持!
答案 0 :(得分:1)
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
为组的长度。