от
У меня есть данные клиента, и хотите проверить, если их письма присутствуют в отдельном ДФ через НП.где, который возвращает 'матч' или 'нет совпадений'. Однако одно из писем заказчиком является Нэн, и одно из писем во втором ДФ является Нэн, так это возвращается в матч. Как вы можете видеть матч был стек Мистер переполнения.
customers = pd.DataFrame({'firstname':['stack','Bar Bar','Foo Bar','jim','john','mary','jim'],
                   'lastname':['overflow','Bar','Foo Bar','ryan','con','sullivan','Ryan'],
                   'email':[np.nan,'Bar','Foo Bar','jim@com','john@com','mary@com','Jim@com']})

customers

    firstname   lastname    email
0   jim             bob             NaN
1   Bar Bar     Bar     bar@com
2   Foo Bar     Foo Bar     foo@com
3   jim     ryan        jim@com
4   john        con     john@com
5   mary        sullivan    hello@com
6   jim     Ryan        jon@com
Теперь я хочу проверить, если их письма в другую таблицу данных под названием 'Письма' ниже:

emails = pd.DataFrame({'emails':['mary@com','bar@com','foo@com','jim@com','john@com',np.nan,'jon@com']})

emails

    emails
0   mary@com
1   bar@com
2   foo@com
3   jim@com
4   john@com
5   NaN
6   jon@com

Я создал новый столбец под названием "чек", который будет записывать результат проверки как 'матч' или 'нет совпадений'

customers['check'] = np.where(customers['email'].isin(emails['emails']), 'match', 'no_match')

customers


    firstname   lastname    email       check
0   jim     bob     NaN     match
1   Bar Bar     Bar     bar@com     match
2   Foo Bar     Foo Bar     foo@com     match
3   jim     ryan        jim@com     match
4   john        con     john@com    match
5   mary        sullivan    hello@com   no_match
6   jim     Ryan        jon@com     match
Все выглядит нормально, за исключением записи Джим Боб. Его письмо является Нэн, есть Нан в таблице данных по электронной почте. Поэтому он возвращается в матч. Какой самый лучший способ обойти это? Я думал делать что-то радикальное, как
fillna()
и изменить его в строку, как
'fakeNaN'
или что-то, поэтому она не придумает матч. Но там должен быть лучший способ.

Ваш ответ

Отображаемое имя (по желанию):
Конфиденциальность: Ваш электронный адрес будет использоваться только для отправки уведомлений.
...