Pandas:使用Levenshtein Distan查询

2024-10-01 00:25:32 发布

您现在位置:Python中文网/ 问答频道 /正文

给定以下数据集:

name;sex;city;age
john;male;newyork;20
jack;male;newyork;21
mary;female;losangeles;45
maryanne;female;losangeles;48
eric;male;san francisco;26
jenny;female;boston2;30
mattia;na;BostonDynamics;50

以及限制条件:

^{pr2}$

我的目标是得到一个list,其中有一个Levenshtein Distance,其中source就是<= max_dist。使用pandas.DataFrame.query()方法可以做到这一点吗?还是必须以不同的方式来完成?在


Tags: 数据namecityagejohnmalefemalesan
1条回答
网友
1楼 · 发布于 2024-10-01 00:25:32

你会用不同的方式来做。在

import editdistance # first do pip install editdistance
from StringIO import StringIO

s = StringIO("""name;sex;city;age
john;male;newyork;20
jack;male;newyork;21
mary;female;losangeles;45
maryanne;female;losangeles;48
eric;male;san francisco;26
jenny;female;boston2;30
mattia;na;BostonDynamics;50""")

df = pd.read_csv(s, sep=';')

df[df.name.apply(lambda x: int(editdistance.eval(source, x)) <= 2)]

   name   sex     city  age
0  john  male  newyork   20


df[df.name.apply(lambda x: int(editdistance.eval(source, x)) <= 2)].name.tolist()

['john']

相关问题 更多 >