См. здесь (работает, если структура данных идентична, что вы нам не говорите):
df_new = df_semi_sup2[~df_semi_sup2.isin(df_confident_inst_no)].dropna() # No need to loop
Вы можете использовать параметр dropna () how
следующим образом:
«любой»: если присутствуют какие-либо значения NA, удалите эту строку или столбец.
‘all’: если все значения равны NA, удалите эту строку или столбец.