Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在一个键列上连接两个数据帧/错误:';列重叠但未指定后缀';_Python_Sql_Join_Pandas_Syntax Error - Fatal编程技术网

Python 在一个键列上连接两个数据帧/错误:';列重叠但未指定后缀';

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') 有人能解释一下这个错误的含义和解决方法吗

我有两个表:销售表和产品表,这两个表共享“零件号”列。 销售表中的“零件号”列不是唯一的,但在产品表中是唯一的。(请参见下图中的销售表和产品表快照)

我试图在销售表上的每个“零件号”中添加等效的“说明”,我遵循了pandas网站上的说明 我的代码

但我有一个错误:

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