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参数指的就是两张表共同的字段。

你可能感兴趣的:(人工智能AI,大数据,python,pandas)