我想将两个数据帧合并为一个
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
答案 0 :(得分:0)
由于key
在每一行上都有相同的值,因此您最终会得到一个笛卡尔联接,因为不清楚每个1
匹配哪个key = 1
。相反,请与key
和index
匹配。
使用:
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