0
爲什麼difflib.get_close_matches在以下示例中找不到匹配項時會拋出「列表索引超出範圍」錯誤?Python熊貓difflib拋出; 「列表索引超出範圍」錯誤
from pandas import DataFrame
import difflib
df1 = DataFrame([[1,'034567','Foo'],
[2,'1cd2346','Bar']],
columns=['ID','Unit','Name'])
df2 = DataFrame([['SellTEST','0ab1234567'],
['superVAR','1ab2345']],
columns=['Seller', 'Unit'])
df2['Unit'] = df2['Unit'].apply(lambda x: difflib.get_close_matches(x, df1['Unit'])[0])
df1.merge(df2)
我得到在DF1值是遙遠 - 但我不希望這個誤差喜歡它,我希望它根本不匹配。
我認爲你正在回答你自己的問題...... difflib沒有返回任何關閉匹配,這是一個空列表。然後你盲目地尊重它,假設有一場比賽,而沒有。你的lambda,而不是簡單地引用'[0]',需要首先檢查一個長度。你想在那裏沒有比賽呢? –