[英]How do I calculate the Levenshtein distance between two Pandas DataFrame columns?
[英]Apply Levenshtein distance from rapidfuzz.distance to dataframe with two columns
我有一個 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 Doe”與“John Doe”進行比較,並將其放入一個新列中。 然后對“Mike Johnson”和“Mike Jonson”進行下一個比較。 所以輸出如下:
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
我試過了(請參閱如何計算兩個 Pandas DataFrame 列之間的 Levenshtein 距離? ),如下所示:
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'
我的錯誤在哪里?
在 lambda 函數中嘗試調用定義它的 x 變量。
df['ld']=df.apply(lambda x: Levenshtein.distance(x['name1'], x['name2']), axis=1)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.