我有两个用于模糊匹配的csv文件。文件1中的列为(ID,party_name),文件2中的列为(party_id,prty_name)。使用Fuzzywuzzy库进行模糊匹配时,它返回三个值(prty_name,match_score和row_number)。当文件1的每一列都与文件2匹配时,我也希望返回文件2的party_id。
文件1中的样本数据
ID, party_name
1,'james mackson'
2,'thomas editon'
文件2中的样本数据
party_id,prty_name
234, 'james mackson'
123, 'george p'
453, 'James anidon'
我尝试从代码中返回多余的列,但这无济于事。
column_val_6是一个数据帧,其中包含文件1中的所有party_name值,将对每一行进行处理。
column_val_6 = csv_source_1.party_name column_val_2 = csv_source_2.prty_name
for i in column_val_6:
for found, score, row_num in process.extract(i, column_val_2, limit=1):
if score >= 50:
print('%d%% partial match: "%s" with "%s" ' % (score, i, found))
I need the output as
party_name, prty_name, match_percentage, party_id
'James Mackson', 'James Mackson', 100, 234
'thomas editon', 'James Anidon', 40, 453