Если условие соответствует двум строкам в двух циклах for - PullRequest
1 голос
/ 03 мая 2020

Пожалуйста, проверьте мой код ниже, я пытаюсь перебрать два фрейма данных и проверить, является ли название страны одинаковым для обоих фреймов. Но я снова и снова получаю значения Na / NaN и не могу понять, почему? Оба набора данных не имеют значений Na / NaN, но, несмотря на это, я продолжаю получать эту ошибку. Пожалуйста помоги! Ошибка выдается в операторе IF. Страна_имя представляет собой строку, такую ​​как США, Индия и др. c.

for reviewer_id, row in data.iterrows():
    for reviewer_id, row1 in data1.iterrows():
        if data1['country_name'][row1] == data['country_name'][row]:
            similar=textdistance.Levenshtein(row.Fname_Username,row1.Fname_Username)
            data2['key1']= str(data['reviewer_id'])+'_'+str(data1['reviewer_id'])
            data2['Fname_Username']= str(data['Fname_Username'])+'_'+str(data1['Fname_Username'])
            data2['Similarity1']=similar

ValueError: невозможно индексировать с вектором, содержащим значения NA / NaN

1 Ответ

1 голос
/ 03 мая 2020

Внимательно посмотрите, как работает iterrows() (например, здесь ). row и row1 - это строки, к которым вы хотите получить доступ, вам просто нужно получить столбец внутри них Например,

if row1['country_name'] == row['country_name']:
...