4
df = pd.DataFrame({"a":[1,2,3,4,5], "b":['apple pie','banana pie','cat','dog','elephant']})

df2 = pd.DataFrame({"a":[4,5,6,7,8], "cost":[44,55,56,88,77]})

pd.merge(df,df2, on='a')

This gives me this dataframe

   a         b  cost
0  4       dog    44
1  5  elephant    55

Instead, I am trying to get a DataFrame where the values of a that did not find a merging partner (1,2,3,7,8) would be kept.

df.merge(df2, how='left') returns this:

   a           b  cost
0  1   apple pie   NaN
1  2  banana pie   NaN
2  3         cat   NaN
3  4         dog  44.0
4  5    elephant  55.0

Almost what I need, but some values in df2 (a = 6,7,8) are left out.

Edit: Solution found. df.merge(df2, on='a', how='outer')

Gen Tan
  • 858
  • 1
  • 11
  • 26

0 Answers0