如何使用另一列中的一个键将pandas df与多列合并?

时间:2019-06-26 12:23:35

标签: python pandas

我有一个包含两列AB(df1)的数据框

A   B
1   2
1   3
2   3

还有一个带有描述“ 123的{​​dictionary”的数据框(df2)

O   P   Q
1   s   a
2   s   b
3   t   b

现在,我想merge与第二张表一起A B P1 Q1 P2 Q2 1 2 s a s b 1 3 s a t b 2 3 s b t b 以便获得以下信息:

df1.merge(df2, left_on=["A","B"], right_on=["O","O"])

我尝试过{{1}}

1 个答案:

答案 0 :(得分:2)

您在这里有两个单独的合并方案,因此必须调用merge两次:

(df1.merge(df2, left_on="A", right_on="O")
    .merge(df2, left_on="B", right_on="O")
    .drop(columns=['O_x', 'O_y']))

   A  B P_x Q_x P_y Q_y
0  1  2   s   a   s   b
1  1  3   s   a   t   b
2  2  3   s   b   t   b