将相似的用户名分组在一起

时间:2020-08-23 08:40:57

标签: python fuzzywuzzy

我的数据如下。如您所见,第一个条目是“ tim”,与tim.rand和timrook匹配。同样,pankit090与pankit001,pankit002,pankit003,pankit004,pankit005匹配

My data

我希望结果如下所示

Result after grouping of names

我能够实现的是

emailsdb = database['Names'].values.tolist()
list = []
for email in emailsdb :
    newlookup = emailsdb.copy()
    newlookup.remove(email)
    result = process.extractBests(email, newlookup, score_cutoff=85, limit=50)
    if len(result) > 0: 
        list.append(email)
        list.append(result)

我得到的是

['tim',
 [('tim.rand', 90), ('timrook', 90)],
 'tim.rand',
 [('tim', 90)],
 'pankit090',
 [('pankit001', 89),
  ('pankit002', 89),
  ('pankit003', 89),
  ('pankit004', 89),
  ('pankit005', 89)],
 'timrook',
 [('tim', 90)],
 'pankit001',
 [('pankit090', 89),
  ('pankit002', 89),
  ('pankit003', 89),
  ('pankit004', 89),
  ('pankit005', 89)],
 'pankit002',
 [('pankit090', 89),
  ('pankit001', 89),
  ('pankit003', 89),
  ('pankit004', 89),
  ('pankit005', 89)],
...........
...........

需要的建议是达到最终结果如上图所示有2个订单项。 Fuzzywuzzy能够找到匹配的用户名的人。

还需要计算组中不同的TID和不同的PID的数量。

0 个答案:

没有答案