【发布时间】:2018-11-05 16:28:57
【问题描述】:
我有两个不同的数据框,我想比较其中的两列。如果第一个数据框的值出现在第二个数据框列中的任何位置,我想复制匹配值旁边的值并将其复制到第一个数据框的新列中。
数据框如下所示:
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 中的相应列进行比较,但它也返回了重复项。
使用 Pandas 完成此任务的好方法是什么?
谢谢!
【问题讨论】: