0

Say I have the following two dataframes:

df1 = pd.DataFrame([('p1','val1', 'para1', 'extra1'),
                    ('p2','val2', 'para2', 'extra2'),
                    ('p3','val3', 'para3', 'extra3'), 
                    ('p4','val4', 'para4', 'extra4'),
                    ('p1','val3', 'para13', 'extra1'),
                    ('p2','val1', 'para21', 'extra2'),
                    ('p3','val1', 'para31', 'extra3'), 
                    ('p4','val2', 'para42', 'extra4')], columns=['col1', 'col2', 'col3', 'col4']) 

df2 = pd.DataFrame([('p1','val1'),
                    ('p2','val2'),
                    ('p4','val2'), 
                    ('p2','val1'),
                    ('p1','val3')], columns=['c1', 'c2']) 

I want to add a column c3 to df2, by matching both values in column c1 to col1 and values in column c2 to col2, returning values in column col3 of df1.

Here is the expected output:

   c1    c2   c3
0  p1  val1   para1
1  p2  val2   para2
2  p4  val2   para42
3  p2  val1   para21
4  p1  val3   para13

Assuming that any combination of (c1, c2) can be found in (col1, col2), how should I implement this neatly?

Tristan Tran
  • 1,129
  • 4
  • 14

0 Answers0