python - 通过 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。任何人都可以帮忙吗?谢谢
解决方案
尝试使用:
join_table = tableA.merge(tableB['Home'], how = 'left', on =['ID']).drop_duplicates(subset=['Name'], keep='first')
推荐阅读
- c - Fast lookup IPv4 Set
- c# - Constraining generic types by extrinsic functionality
- dns - 使用外部 TLD (Godaddy) 设置 Active Directory 域控制器?
- database - 如何找出哪些比赛只发生在星期一?
- html - 避免使用多个 ul 来创建“对角线”列表
- html - 在端口 443 而不是 80 上加载站点
- javascript - 后续重新挂载时不会调用 Redux 操作
- ios - Sorting dates with swift
- unit-testing - kotlin 安卓。断言 assertEquals widtch Pair.Failed 测试
- python-3.x - Using matplotlib.pyplot.clabel to add labels with a transparent background