1

I have two dataframes

df_a

|id    |name|    email|
|0   | Jack  |  [email protected]|
|1   | James |   [email protected]|
|2   | Alice |   [email protected]|

df_b

|id    |name|    email|
|2   | Alice |  [email protected]    |
|3   | Allen |   [email protected]   |
|4   | Amy   | [email protected]       |

I want to merge two dataframe base on id,and using df_a's email .get result like this:

df_result

|id    |name|    email|
|0    |Jack |   [email protected]  |
|1    |James|    [email protected]|
|2    |Alice|    [email protected]|
|3    |Allen|    [email protected]|
|4    |Amy  |  [email protected]    |

It is a little different like this question ,because id=2 Alice's email is different.

Masker
  • 76
  • 6

1 Answers1

1

You can use concat + drop_duplicates with specify columns for check dupes:

df = pd.concat([df_a, df_b]).drop_duplicates(['id','name'])
print (df)
   id   name            email
0   0   Jack   [email protected]
1   1  James  [email protected]
2   2  Alice  [email protected]
1   3  Allen  [email protected]
2   4    Amy    [email protected]
jezrael
  • 822,522
  • 95
  • 1,334
  • 1,252