pandas: merge/concat.加入两个dfs

pandas: merge/concat.join two dfs

我有 2 个我想要的 dfs merge/concat/join。

这里是 df1:

 item    country  Month Year
 honda   JP       2     16
 sony    GB       6     16
 jazz    JP       6     16
 honda   US       6     16
 jazz    JP       1     16

这里是 df2:

 item    country  pay 
 honda   JP       y   
 sony    GB       n   
 jazz    JP       y   
 honda   US       y   
 jazz    JP       n   

这是我希望合并后的样子:

 item    country  pay  Month Year
 honda   JP       y     2     16
 sony    GB       n     6     16
 jazz    JP       y     6     16
 honda   US       y     6     16
 jazz    JP       n     1     16

我使用了 df = df1.join(df2, how='outer') 但它创建了重复项。

我想使用 itemcountry 列合并到 pay 列中,是否有意义?

我认为你需要 concat with set_index DataFrames:

print (pd.concat([df1.set_index(['item','country']),
                  df2.set_index(['item','country'])], axis=1).reset_index())
    item country  Month  Year pay
0  honda      JP      2    16   y
1   sony      GB      6    16   n
2   jazz      JP      6    16   y
3  honda      US      6    16   y
4   jazz      JP      1    16   n