我有一个字符串列表,我试图与列中的值匹配。如果它是低匹配(低于 95),我想返回当前列值,如果它高于 95,那么我想从列表中返回最佳模糊匹配。我正在尝试将所有返回的值放入一个新列中。我不断收到错误“元组索引超出范围”,我认为这可能是因为它想返回一个带有分数和名称的元组,但我只想要名称。这是我当前的代码:
from fuzzywuzzy import process
from fuzzywuzzy import fuzz
L = [ducks, frogs, doggies]
df
FOO PETS
a duckz
b frags
c doggies
def fuzz_m(column, pet_list, score_t):
for c in column:
new_name, score = process.extractOne(c, pet_list, score_t)
if score<95:
return c
else:
return new_name
df['NEW_PETS'] = fuzz_m(df,L, fuzz.ratio)
期望的输出:
FOO PETS NEW_PETS
a duckz ducks
b frags frogs
c doggies doggies