Pandas: Find rows which don't exist in another DataFrame by multiple columns

后端 未结 2 508
滥情空心
滥情空心 2020-12-23 10:25

same as this python pandas: how to find rows in one dataframe but not in another? but with multiple columns

This is the setup:

import pandas as pd

d         


        
2条回答
  •  醉梦人生
    2020-12-23 10:47

    Since 0.17.0 there is a new indicator param you can pass to merge which will tell you whether the rows are only present in left, right or both:

    In [5]:
    merged = df.merge(other, how='left', indicator=True)
    merged
    
    Out[5]:
       col1 col2  extra_col     _merge
    0     0    a       this  left_only
    1     1    b         is       both
    2     1    c       just  left_only
    3     2    b  something  left_only
    
    In [6]:    
    merged[merged['_merge']=='left_only']
    
    Out[6]:
       col1 col2  extra_col     _merge
    0     0    a       this  left_only
    2     1    c       just  left_only
    3     2    b  something  left_only
    

    So you can now filter the merged df by selecting only 'left_only' rows

提交回复
热议问题