darkpool
darkpool

Reputation: 14641

Finding rows which aren't in two dataframes

I have the following dataframe:

symbol,    name
abc        Jumping Jack
xyz        Singing Sue
rth        Fat Frog

I then have another dataframe with the same structure (symbol + name). I need to output all the symbols which are in the first dataframe but not the second.

The name column is allowed to differ. For example I could have symbol = xyz in both dataframes but with different names. That is fine. I am simply trying to get the symbols which do not appear in both dataframes.

I am sure this can be done using pandas merge and then outputting the rows that didn't merge, but I just can't seem to get it right.

Upvotes: 3

Views: 241

Answers (1)

EdChum
EdChum

Reputation: 394041

Use isin and negate the condition using ~:

df[~df['symbol'].isin(df1['symbol'])]

This will return rows where 'symbol' is present in your first df and not in the other df

Upvotes: 2

Related Questions