Yum*_*umi 6 python sql join syntax-error pandas
我有两个表:销售表和产品表,这两个表共享'PART NUMBER'列.销售表中的"PART NUMBER"列不是唯一的,但在产品表中是唯一的.(参见下面的销售表和产品表快照的图片)


我试图在销售表上为每个'PART NUMBER'添加等效的'Description',然后我按照pandas网站上的示例我的代码
sales.join(part_table, on='PART NUMBER')
Run Code Online (Sandbox Code Playgroud)
但我得到了这个错误:
ValueError: columns overlap but no suffix specified: Index([u'PART NUMBER'], dtype='object')
Run Code Online (Sandbox Code Playgroud)
有人可以解释这个错误意味着什么以及如何解决它?
非常感谢!
sales.merge(part_table)
Run Code Online (Sandbox Code Playgroud)
这是一个示例数据帧:
In [11]: dfa = pd.DataFrame([[1, 2], [3, 4]], columns=['A', 'B'])
In [12]: dfb = pd.DataFrame([[1, 'a'], [3, 'b'], [3, 'c']], columns=['A', 'C'])
In [13]: dfa.join(dfb, on=['A'])
ValueError: columns overlap but no suffix specified: Index([u'A'], dtype='object')
In [14]: dfa.merge(dfb)
Out[14]:
A B C
0 1 2 a
1 3 4 b
2 3 4 c
Run Code Online (Sandbox Code Playgroud)
从文档中不清楚这是否是故意的(我认为on它将用作列)但是如果添加后缀,则遵循异常消息我们可以看到发生了什么:
In [21]: dfb.join(dfa, on=['A'], lsuffix='_a', rsuffix='_b')
Out[21]:
A_a C A_b B
0 1 a 3 4
1 3 b NaN NaN
2 3 c NaN NaN
In [22]: dfb.join(dfa, lsuffix='_a', rsuffix='_b')
Out[22]:
A_a C A_b B
0 1 a 1 2
1 3 b 3 4
2 3 c NaN NaN
Run Code Online (Sandbox Code Playgroud)
它忽略了on kwarg并且正在进行连接.