Python 在一个键列上连接两个数据帧/错误:';列重叠但未指定后缀';
我有两个表:销售表和产品表,这两个表共享“零件号”列。 销售表中的“零件号”列不是唯一的,但在产品表中是唯一的。(请参见下图中的销售表和产品表快照) 我试图在销售表上的每个“零件号”中添加等效的“说明”,我遵循了pandas网站上的说明 我的代码 但我有一个错误:Python 在一个键列上连接两个数据帧/错误:';列重叠但未指定后缀';,python,sql,join,pandas,syntax-error,Python,Sql,Join,Pandas,Syntax Error,我有两个表:销售表和产品表,这两个表共享“零件号”列。 销售表中的“零件号”列不是唯一的,但在产品表中是唯一的。(请参见下图中的销售表和产品表快照) 我试图在销售表上的每个“零件号”中添加等效的“说明”,我遵循了pandas网站上的说明 我的代码 但我有一个错误: ValueError: columns overlap but no suffix specified: Index([u'PART NUMBER'], dtype='object') 有人能解释一下这个错误的含义和解决方法吗
ValueError: columns overlap but no suffix specified: Index([u'PART NUMBER'], dtype='object')
有人能解释一下这个错误的含义和解决方法吗
非常感谢 我想你想做一个而不是一个:
下面是一个数据帧示例:
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
文档中不清楚这是否是有意的(我认为上的
将用作列),但在例外消息之后,如果您添加后缀,我们可以看到发生了什么:
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
它忽略了on-kwarg,只是做了加入。谢谢。出于某种原因,我认为“合并”需要两个数据帧具有相同的长度。对于新手来说,这真是一个合适的选择
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
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