pandas报错:columns overlap but no suffix specified

使用pandas的join连接两张表,例如表1是left,表2是right,这两张表都有共同的字段user_name,我就以user_name这个字段连接这两张表:
left.join(right,how='left',on='user_name')
就报出了以下错误:
在这里插入图片描述
查了一下,是说错误原因是由于这两张表有重复的字段,就是user_name这个字段,需要更改这个字段。
这问题我疑惑了好久,两张表联合不是都要有个共同字段吗?怎么会报出重复字段错误呢?

原来我理解错了pandas的join,它是将右表的索引和左表的某一列的值进行对应合并。on这个参数不是指两张的共同字段,而是指左表要取的对应字段。

理解了join这个定义后,下面这个错误也就很好理解了
在这里插入图片描述
这个错误是说合并的两列的数据类型不同,不能合并。因为右表取的是索引,默认是int64,如果左表on这个参数指定的列是字符型,那么这两列很明显是数据类型不同,不能合并。

如果用merge:
pd.merge(left,right,how='left',on='user_name')
这里的on参数指的就是两张表共同的字段。

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值