合并 2 个数据帧共享 pandas 中的同一列



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

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

因为key每行都有相同的值,所以你最终会得到一个笛卡尔连接,因为不清楚每个key = 1匹配哪个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

最新更新