Так что я точно не знаю, в каком формате вы хотите получить результат, поэтому я создал словарь, в котором ключ - это индекс данной строки, а значение - список индексов для строк, которые отличаются ровно на 1 запись. .
def ndif(a,b):
d = 0
for x,y in zip(a,b):
if x!=y:
d+=1
return(d)
d = pd.DataFrame([[1,2,3],[1,2,4],[3,2,4],[3,0,4],[5,0,3]])
just1 = {}
for k in d.index:
just1[k] = [k[0] for k in d.apply(ndif,args=[d.iloc[k]],axis=1).items() if k[1]==1]