Here's the code to isolate potential matches with row sum >=3, get values of second column index of matches, subset restaurants_new based on non-duplicate values, and append non_dup to restaurants:
# Isolate potential matches with row sum >=3
matches = potential_matches[matches.sum(axis=1) >= 3]
# Get values of second column index of matches
matching_indices = matches.index.get_level_values(1)
# Subset restaurants_new based on non-duplicate values
non_dup = restaurants_new[~restaurants_new.index.isin(matching_indices)]
# Append non_dup to restaurants
full_restaurants = restaurants.append(non_dup)
print(full_restaurants)