Проблема здесь в том, что вы не используете или не называете переменные цикла for
правильно и не пытаетесь сравнить все столбцы каждого кадра данных напрямую.
sdfn['ConceptID1']
, sdfn['ConceptID2']
, jdfn['Gene1']
, jdfn['Gene2']
будет ссылаться на весь столбец данных, который pandas определяет как объект типа Series
, поэтому в сообщении об ошибке упоминается Series
несоответствие метки.
Youсначала нужно будет переименовать переменные цикла for
, а затем использовать их в поиске:
for sind, srow in sdfn.iterrows():
for jind, jrow in jdfn.iterrows():
if ((srow['ConceptID1']==jrow['Gene1']) and (srow['ConceptID2']==jrow['Gene2'])) or (srow['ConceptID1']==jrow['Gene2']) and ((srow['ConceptID2']==jrow['Gene1'])):
print(srow['ConceptID1'], jrow['Gene1'], srow['ConceptID2'], jrow['Gene2'])
Обратите внимание, что в опубликованном коде переменные index
и row
объявлены и назначены ввнешний цикл еще не изменен во внутреннем цикле. Таким образом, вместо двух пар переменных цикла, существует только одна пара, которая увеличивается и перезаписывается, поэтому не может сравнивать соответствующие данные.
Надеюсь, это поможет!