加入熊猫列

时间:2021-01-23 21:22:54

标签: pandas join

所以这按预期工作:

df1 = pd.DataFrame({'date':[123,456],'price1':[23,34]}).set_index('date')
df2 = pd.DataFrame({'date':[456,789],'price2':[22,32]}).set_index('date')
df1.join(df2, how='outer')

      price1  price2
date                
123     23.0     NaN
456     34.0    22.0
789      NaN    32.0

但是如果我不设置索引,就会报错:

df1 = pd.DataFrame({'date':[123,456],'price1':[23,34]})
df2 = pd.DataFrame({'date':[456,789],'price2':[22,32]})
df1.join(df2, on='date', how='outer')

ValueError: columns overlap but no suffix specified: Index(['date'], dtype='object')

这是为什么,我认为他们应该给出相同的结果是错误的吗?

1 个答案:

答案 0 :(得分:1)

如果您只想添加两个数据框而不是通过某个列连接,则需要添加后缀,以免创建具有相同名称的列。例如:

df1.join(df2, how='outer', lsuffix='_left', rsuffix='_right')

如果你想加入列,你应该使用合并:

df1.merge(df2, how='outer')