TylerNG
TylerNG

Reputation: 941

Python Pandas Combining 2 df by keys

I'm trying to combine these two dataframes: df1 =

ID1 ID2
111 1001
112 1002
113 1003
114 1004
115 1005

df2 =

ID1  Name   Age
111  ABC    20
111  ABC    21
1001 ABC    22
1002 QAZ    18
1002 QAZ    19
1002 QAZ    20
113  XYZ    25
113  XYZ    25

to get an output like this:

ID      Name Age ID1    ID2
111     ABC  20  111    1001
111     ABC  21  111    1001
1001    ABC  22  111    1001
1002    QAZ  18  112    1002
1002    QAZ  19  112    1002
1002    QAZ  20  112    1002
113     XYZ  25  113    1003
113     XYZ  25  113    1003

Is this possible?

Thanks in advance!

Upvotes: 0

Views: 38

Answers (1)

BENY
BENY

Reputation: 323306

merge + combine_first PS: I think the ID1 in df2 should be ID

df2.merge(df1,left_on='ID',right_on='ID1',how='left').\
        combine_first(df2.merge(df1,left_on='ID',right_on='ID2',how='left'))
Out[912]: 
     ID Name  Age    ID1     ID2
0   111  ABC   20  111.0  1001.0
1   111  ABC   21  111.0  1001.0
2  1001  ABC   22  111.0  1001.0
3  1002  QAZ   18  112.0  1002.0
4  1002  QAZ   19  112.0  1002.0
5  1002  QAZ   20  112.0  1002.0
6   113  XYZ   25  113.0  1003.0
7   113  XYZ   25  113.0  1003.0

Upvotes: 1

Related Questions