在pandas中将两个数据帧合并为一个

时间:2017-10-18 05:57:13

标签: pandas

我有两个数据帧

DF_A

|id    |name|    email|
|0   | Jack  |  jack@gmail.com|
|1   | James |   james@gmail.com|
|2   | Alice |   alice@gmail.com|

DF_B

|id    |name|    email|
|2   | Alice |  alice@live.com    |
|3   | Allen |   allen@gmail.com   |
|4   | Amy   | amy@gmail.com       |

我想基于id合并两个数据帧,并使用df_a的电子邮件.get结果如下:

df_result

|id    |name|    email|
|0    |Jack |   jack@gmail.com  |
|1    |James|    james@gmail.com|
|2    |Alice|    alice@gmail.com|
|3    |Allen|    allen@gmail.com|
|4    |Amy  |  amy@gmail.com    |

与此question略有不同,因为id = 2 Alice 的电子邮件不同。

1 个答案:

答案 0 :(得分:1)

您可以使用concat + drop_duplicates指定检查对象列:

df = pd.concat([df_a, df_b]).drop_duplicates(['id','name'])
print (df)
   id   name            email
0   0   Jack   jack@gmail.com
1   1  James  james@gmail.com
2   2  Alice  alice@gmail.com
1   3  Allen  allen@gmail.com
2   4    Amy    amy@gmail.com