от
У меня есть данные клиента, и хотите проверить, если их письма присутствуют в отдельном ДФ через НП.где, который возвращает 'матч' или 'нет совпадений'. Однако одно из писем заказчиком является Нэн, и одно из писем во втором ДФ является Нэн, так это возвращается в матч. Как вы можете видеть матч был стек Мистер переполнения.
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'
или что-то, поэтому она не придумает матч. Но там должен быть лучший способ.

Пожалуйста, войдите или зарегистрируйтесь для публикации ответа на этот вопрос.

Добро пожаловать на сайт ByNets, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...