首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >应用Levenshtein从rapidfuzz.distance到双列数据的距离

应用Levenshtein从rapidfuzz.distance到双列数据的距离
EN

Stack Overflow用户
提问于 2022-07-11 08:08:16
回答 1查看 162关注 0票数 0

我有一个csv文件,如下所示:

代码语言:javascript
复制
ID; name1; name2
1; John Doe; John Does
2; Mike Johnson; Mike Jonson
3; Leon Mill; Leon Miller
4; Jack Jo; Jack Joe

现在我要计算每对名字的Levenshtein距离。因此,将"John“和"John”进行比较,并将其放到一个新的专栏中。然后对“迈克·约翰逊”和“迈克·琼森”进行下一次比较。因此,产出如下:

代码语言:javascript
复制
ID; name1; name2;ld
1; John Doe; John Does;1
2; Mike Johnson; Mike Jonson;1
3; Leon Mill; Leon Miller;2
4; Jack Jo; Jack Joe;1

我尝试过(请参阅How do I calculate the Levenshtein distance between two Pandas DataFrame columns?)如下:

代码语言:javascript
复制
from rapidfuzz.distance import Levenshtein
import pandas as pd

df = pd.read_csv(r'C:\Users\myuser\Downloads\Testfile.csv', sep=";")
print(df)

df['ld']=df.apply(lambda x: Levenshtein.distance(df['name1'], df['name2']), axis=1)

但是我发现了一个错误:

代码语言:javascript
复制
KeyError: 'name1'

我的错误在哪里?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-07-11 08:14:59

在lambda函数中,尝试调用定义它的x变量。

代码语言:javascript
复制
df['ld']=df.apply(lambda x: Levenshtein.distance(x['name1'], x['name2']), axis=1)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72935473

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档