用通用列连接两个数据帧

时间:2019-06-26 11:34:46

标签: python pandas

我有两个具有相同列的数据框。只有一列具有不同的值。我想将两者串联而不重复。

df2 = pd.DataFrame({'key': ['K0', 'K1', 'K2'],'cat': ['C0', 'C1', 'C2'],'B': ['B0', 'B1', 'B2']})
df1 = pd.DataFrame({'key': ['K0', 'K1', 'K2'],'cat': ['C0', 'C1', 'C2'],'B': ['A0', 'A1', 'A2']})

df1
Out[630]: 
  key cat   B
0  K0  C0  A0
1  K1  C1  A1
2  K2  C2  A2
df2
Out[631]: 
  key cat   B
0  K0  C0  B0
1  K1  C1  B1
2  K2  C2  B2

我尝试过:

result = pd.concat([df1, df2], axis=1)
result
Out[633]: 
  key cat   B key cat   B
0  K0  C0  A0  K0  C0  B0
1  K1  C1  A1  K1  C1  B1
2  K2  C2  A2  K2  C2  B2

所需的输出:

  key cat   B_df1  B_df2
0  K0  C0    A0     B0
1  K1  C1    A1     B1
2  K2  C2    A2     B2

注意:之后我可以删除重复项并重命名列,但这似乎效率不高

1 个答案:

答案 0 :(得分:5)

pd.merge将完成工作

pd.merge(df1,df2, on=['key','cat'])

输出

  key cat   B_x   B_y
0  K0  C0    A0    B0
1  K1  C1    A1    B1
2  K2  C2    A2    B2