首页 > 解决方案 > 通过 Pandas 中的合并功能左连接

问题描述

我有两个表要进行左连接

表A

ID | Name | Birthday | Salary

1  |  Tom | 01/12/80 | 29382
2  | Kate | 21/2/90  | 39383
3  | Ini  | 23/8/92  | 28287

表 B

ID | Name | Birthday | Home

1  |  Tom | 01/2/80  | Chur
2  | Kate | 21/2/90  | Blu
3  | Ini  | 20/9/92  | La

我想做一个左连接,结果如下

ID | Name | Birthday | Salary | Home

1  |  Tom | 01/12/80 | 29382  |  Chur
2  | Kate | 21/2/90  | 39383  |  Blu
3  | Ini  | 23/8/92  | 28287  |  La

我的代码是

join_table = tableA.merge(tableB['Home'], how = 'left', on =['ID'])

但结果出来像

ID | Name | Birthday | Salary | Home

1  |  Tom | 01/12/80 | 29382  |  Chur
1  |  Tom | 01/2/80  | 29382  |  Chur
2  | Kate | 21/2/90  | 39383  |  Blu
3  | Ini  | 23/8/92  | 28287  |  La
3  | Ini  | 20/9/92  | 28287  |  La

ID 1 和 3 是重复的,因为它们在两个表中具有不同的生日数据但相同的 ID。任何人都可以帮忙吗?谢谢

标签: pythonpandasleft-join

解决方案


尝试使用:

join_table = tableA.merge(tableB['Home'], how = 'left', on =['ID']).drop_duplicates(subset=['Name'], keep='first')

推荐阅读