pandas:合并/concat.join 两个 dfs

Posted

技术标签:

【中文标题】pandas:合并/concat.join 两个 dfs【英文标题】:pandas: merge/concat.join two dfs 【发布时间】:2017-01-20 23:55:27 【问题描述】:

我有 2 个要合并/合并/加入的 dfs。

这里是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 列中,如果这样有意义吗?

【问题讨论】:

【参考方案1】:

我认为你需要concatset_indexDataFrames 中:

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

【讨论】:

以上是关于pandas:合并/concat.join 两个 dfs的主要内容,如果未能解决你的问题,请参考以下文章

python-dataframe的合并(append, merge, concat, join)

JavaScript中push ,pop ,concat ,join方法

按 ID 合并两个 Excel 文件并合并具有相同名称的列(python、pandas)

在 Pandas 中将两个 MultiIndex 级别合并为一个

pandas 合并两个多层次系列

17、pandas的merge合并函数