from itertools import groupby, chain
from collections import OrderedDict
a = [['Петров', 'Петр', 'Петрович', 'Стационар', '', '+7(888)888-88-88 ', ''],
['Иванов','Иван','Иванович','Поликлиника',
'','+7(777)777-77-77 доб.0000',''],
['Иванов', 'Андрей', '', '',''],
['Петров','Петр','Петрович','Стационар','Хирург','','',''],
['Иванов', 'Иван', '', '', '', 'Ivan.Ivanov@mail.ru']]
a.sort(key=lambda x: (x[0], x[1]))
grouped_list = [list(data) for _, data in groupby(a, key=lambda x: (x[0], x[1]))]
res = [list(OrderedDict.fromkeys(chain(*x))) for x in grouped_list]
Как-то так, объединение по первым двум полям(имени и фамилии)