Gabriel Lucas
Gabriel Lucas

Reputation: 311

Merge dataframes based on column values with duplicated rows

I want to merge two dataframes based on equal column values. The problem is that one of my columns have duplicated row values, which cannot be drop since it's correlated to another columns. Here's an example of my two dataframes:

DF1 DF2

Essentialy, I want to merge this two dataframes based on equal values of FromPatchID (df1) and Id (df2) columns, in order to get something like this:

FromPatchID    ToPatchID    ...    Id     MMM     LB
    1              1        ...    1     26.67   27.67
    1              2        ...    1     26.67   27.67
    1              3        ...    1     26.67   27.67
    2              1        ...    2     26.50   27.50
    3              1        ...    3     26.63   27.63

I already tried a simple merge with df_merged = pd.merge(df1, df2, on=['FromPatchID','Id']), but I got KeyError indicating to check for duplicates in FromPatchID column.

Upvotes: 1

Views: 2413

Answers (1)

RJ Adriaansen
RJ Adriaansen

Reputation: 9649

You have to specify the different column names to match on with left_on and right_on. Also specify how='right' to use only keys from the right frame.

df_merged = pd.merge(df1, df2, left_on='FromPatchID', right_on='Id', how='right')

Upvotes: 2

Related Questions