Search code examples
pythonpandasdataframemerge

how to make pandas merge without inner data


how to make pandas merge without inner data?

input:

inner_df = pd.merge(df1, df2, on='user', how='inner')

outer_df = pd.merge(df1, df2, on='user', how='outer')

so i don't need inner data i need only outer data. but merging large data three times is too costly for my computer. any easiest way to do that with low computational power requires?

required output:

reguired_output = outer_df - inner_df


Solution

  • If I understand your question correctly you want to have a new DataFrame without the common data. It can be done something like this:

    merged_df = pd.merge(df1,df2,on='key',how='outer',indicator=True)
    uncommon_df = merged_df[(merged_df['_merge'] == 'left_only') | (merged_df['_merge'] == 'right_only')].drop(columns='_merge')
    

    now you can use "uncommon_df" for your purpose. There must be more different ways but this is my implementation. hope it helps