3

I have two dataframes like:

d = {'CD': ['LO6000', 'TBLITIE', 'UUUU'], 'REGN': ['Colorado', 'Colorado', 'Colorado'], 'rev_1': [1179.49, 2110.00, 23.54]}
df = pd.DataFrame(data=d)


        CD      REGN    rev_1
0   LO6000  Colorado  1179.49
1  TBLITIE  Colorado  2110.00
2     UUUU  Colorado    23.54

and

d = {'CD': ['LO6000', 'TBLITIE'], 'REGN': ['Colorado', 'Colorado'], 'rev_2': [356, 9503]}
df = pd.DataFrame(data=d)

        CD      REGN  rev_2
0   LO6000  Colorado    356
1  TBLITIE  Colorado   9503

And would like to match them on the CD and REGN columns to get a dataframe like so:

d = {'CD': ['LO6000', 'TBLITIE', 'UUUU'], 'REGN': ['Colorado', 'Colorado', 'Colorado'], 'rev_1': [1179.49, 2110.00, 23.54], 'rev_2': [356.00, 9503.00, 'nan']}
df = pd.DataFrame(data=d)


        CD      REGN    rev_1    rev_2
0   LO6000  Colorado  1179.49   356.00
1  TBLITIE  Colorado  2110.00  9503.00
2     UUUU  Colorado    23.54   nan
sanjayr
  • 1,679
  • 2
  • 20
  • 41

1 Answers1

2

if

d1 = {'CD': ['LO6000', 'TBLITIE', 'UUUU'], 'REGN': ['Colorado', 'Colorado', 'Colorado'], 'rev_1': [1179.49, 2110.00, 23.54]}
df1 = pd.DataFrame(data=d1)


d2 = {'CD': ['LO6000', 'TBLITIE'], 'REGN': ['Colorado', 'Colorado'], 'rev_2': [356, 9503]}
df2 = pd.DataFrame(data=d2)

then

df = pd.merge(left=df1, right=df2, how="left", on=["CD", "REGN"])

output:

        CD      REGN    rev_1   rev_2
0   LO6000  Colorado  1179.49   356.0
1  TBLITIE  Colorado  2110.00  9503.0
2     UUUU  Colorado    23.54     NaN
anon01
  • 10,618
  • 8
  • 35
  • 58