我有一个csv文件,如下所示:
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”进行比较,并将其放到一个新的专栏中。然后对“迈克·约翰逊”和“迈克·琼森”进行下一次比较。因此,产出如下:
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?)如下:
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)但是我发现了一个错误:
KeyError: 'name1'我的错误在哪里?
发布于 2022-07-11 08:14:59
在lambda函数中,尝试调用定义它的x变量。
df['ld']=df.apply(lambda x: Levenshtein.distance(x['name1'], x['name2']), axis=1)https://stackoverflow.com/questions/72935473
复制相似问题