合并2个数据帧共享pandas

时间:2017-08-25 22:33:30

标签: python pandas dataframe

我想将两个数据帧合并为一个

df1

 key  columnA
  1    0
  1    1
  1    2

DF2

 key columnB
  1    3
  1    5
  1    7

结果

 key columnA columnB
  1    0       3
  1    1       5
  1    2       7

结果数据框的列排序并不重要

编辑:我试过了

 pd.merge(df1, df2, on ='key', how = 'inner')

它给了我一个

的df
    A  key  B
    0    1  3
    0    1  5
    0    1  7
    1    1  3
    1    1  5
    1    1  7
    2    1  3
    2    1  5
    2    1  7

1 个答案:

答案 0 :(得分:0)

由于key在每一行上都有相同的值,因此您最终会得到一个笛卡尔联接,因为不清楚每个1匹配哪个key = 1。相反,请与keyindex匹配。

使用:

df1 = pd.DataFrame({"key":np.ones(3, dtype=int), "columnA":np.arange(3)})
df2 = pd.DataFrame({"key":np.ones(3, dtype=int), "columnB":np.arange(3,9,2)})

合并这样:

df1.merge(df2, on="key", left_index=True, right_index=True)
   columnA  key  columnB
0        0    1        3
1        1    1        5
2        2    1        7