Python 熊猫在这两个数据帧上连接会导致值错误,但不同版本的错误不同,为什么?

Python 熊猫在这两个数据帧上连接会导致值错误,但不同版本的错误不同,为什么?,python,pandas,Python,Pandas,可能重复 在尝试合并以下两个数据帧时,我收到了一些有趣的消息。有人知道发生了什么事吗?删除E将修复此错误 newvi = pd.DataFrame({'a':['E1000305', 'E1000505', 'E1001071', 'E99836', 'E1003822']}) newsm = pd.DataFrame({'a':['E1000305', 'E1000305', 'E1000305', 'E1000305', 'E1000305']}) newvi.a #0 E10003

可能重复

在尝试合并以下两个数据帧时,我收到了一些有趣的消息。有人知道发生了什么事吗?删除E将修复此错误

newvi = pd.DataFrame({'a':['E1000305', 'E1000505', 'E1001071', 'E99836', 'E1003822']})
newsm = pd.DataFrame({'a':['E1000305', 'E1000305', 'E1000305', 'E1000305', 'E1000305']})

newvi.a
#0    E1000305
#1    E1000505
#2    E1001071
#3      E99836
#4    E1003822
#Name: a, dtype: object
newsm.a
#0    E1000305
#1    E1000305
#2    E1000305
#3    E1000305
#4    E1000305
#Name: a, dtype: object

newvi.join(newsm, on='a')

#my computer
#ValueError: columns overlap but no suffix specified: Index([u'a'], dtype='object')

>>> pd.__version__
u'0.18.1'

#server

#ValueError: You are trying to merge on object and int64 columns. If you wish to proceed you should use pd.concat

>>> pd.__version__
'0.24.2'
newvi.join(newsm.set_index('a'),on='a')


将索引设置为“a”似乎可以解决您的错误,结果是否符合您的预期?

您希望连接的数据帧看起来像什么?它可以解决问题是的。但仍感兴趣的是为什么会发生这种情况,这似乎与join中
的行为以及它如何使用索引有关。请参阅
文档中的
。我认为这不是一个bug