簡體   English   中英

將來自 rapidfuzz.distance 的 Levenshtein 距離應用於具有兩列的數據框

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM