Панды сравнивают два столбца и копируют значение другого столбца, если есть совпадение только для первого уникального значения - PullRequest
0 голосов
/ 05 ноября 2018

У меня есть два разных кадра данных, из которых я хочу сравнить два столбца. Если значение первого кадра данных появляется где-либо в столбце второго кадра данных, я хочу скопировать значение рядом с соответствующим значением и скопировать его в новый столбец в первом кадре данных.

Фреймы данных выглядят так:

DF1

╔═══════════════════╗
║       Email       ║
╠═══════════════════╣
║ Johndoe@gmail.com ║
║ janedoe@gmail.com ║
║ foo@gmail.com     ║
║ foobar@gmail.com  ║
║ bar@gmail.com     ║
╚═══════════════════╝

DF2

╔════════════════════╦═════════════╗
║       Email        ║    Phone    ║
╠════════════════════╬═════════════╣
║ Johndoe@gmail.com  ║ 111-111-111 ║
║ Johndoe@gmail.com  ║ 111-111-111 ║
║ Johndoe@gmail.com  ║ 111-111-111 ║
║ Jakedoe@gmail.com  ║ 123-123-123 ║
║ jamesdoe@gmail.com ║ 321-321-321 ║
║ janedoe@gmail.com  ║ 222-222-222 ║
║ janedoe@gmail.com  ║ 222-222-222 ║
║ foo@gmail.com      ║ 333-333-333 ║
║ foobar@gmail.com   ║ 444-444-444 ║
║ foobar@gmail.com   ║ 444-444-444 ║
║ bar@gmail.com      ║ 555-555-555 ║
╚════════════════════╩═════════════╝

Вывод должен выглядеть так:

╔═══════════════════╦═════════════╗
║       email       ║    phone    ║
╠═══════════════════╬═════════════╣
║ Johndoe@gmail.com ║ 111-111-111 ║
║ janedoe@gmail.com ║ 222-222-222 ║
║ foo@gmail.com     ║ 333-333-333 ║
║ foobar@gmail.com  ║ 444-444-444 ║
║ bar@gmail.com     ║ 555-555-555 ║
╚═══════════════════╩═════════════╝

Я попытался зациклить столбец в DF1 и сравнить каждое значение с соответствующим столбцом в DF2, но он также возвращает дубликаты.

Что было бы хорошим способом сделать это с помощью Панд?

Спасибо!

1 Ответ

0 голосов
/ 05 ноября 2018

Вы можете использовать .merge(), а затем .drop_duplicates()

new_df = df1.merge(df2, on='Email', how='left').drop_duplicates()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...