Search code examples
pythonpandasdataframedelete-row

Remove common observations


I have 2 dataframes

Map3 = pd.DataFrame({
"partner_country": ["France","France","France","France","France","France",
                     "Spain","Spain","Spain","Spain","Spain","Spain"
                    ],

"my_network": ["Ireland","Austria",None,"Sweden","Italy",None , #France
               "Ireland","Austria","Denmark","Sweden",None,"United Kingdom" #Spain
               ]})#Netherlands

Map4 = pd.DataFrame({
"partner_country": ["France","France","France","France","France","France",
                     "Spain","Spain","Spain","Spain","Spain","Spain"
                    ],

"my_network": [None,None,None,None,"Italy",None , #France
               None,"Austria",None,"Sweden",None,"United Kingdom" #Spain
               ]})#Netherlands

I want to remove all the observations which is common in Map3 & Map4 from the Map3 data frame. Tried the following code :

Map4[~(Map4['partner_country'].isin(Map3['partner_country'])Map4['my_network'].isin(Map3['my_network']]

Solution

  • A simple solution since you have only 2 columns might be:

    common = (Map3.partner_country + Map3.my_network).isin(Map4.partner_country + Map4.my_network)
    Map3 = Map3.loc[~common]