我有一个由两列字符串组成的 pandas DataFrame。我想创建第三列,其中包含两列的编辑距离。
from nltk.metrics import edit_distance
df['edit'] = edit_distance(df['column1'], df['column2'])
出于某种原因,这似乎进入了某种无限循环,因为它在相当长的一段时间内仍然没有响应,然后我必须手动终止它。
欢迎提出任何建议。
最佳答案
nltk 的edit_distance
函数用于比较字符串对。如果您想计算相应字符串对之间的编辑距离,将
它分别应用于每一行的字符串,如下所示:
results = df.apply(lambda x: edit_distance(x["column1"], x["column2"]), axis=1)
或者像这样(可能更有效一点),以避免包含数据框的不相关列:
results = df.loc[:, ["column1", "column2"]].apply(lambda x: edit_distance(*x), axis=1)
要将结果添加到您的数据框,您可以像这样使用它:
df["distance"] = df.loc[:, ["column1","column2"]].apply(lambda x: edit_distance(*x), axis=1)
关于python - 编辑两个 Pandas 列之间的距离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42892617/