Вы можете использовать merge
с how='left'
и indicator=True
, а затем фильтровать строки, представленные в df1
.
In [277]: df1.merge(df2, indicator=True, how='left'
).query('_merge == "left_only"'
).drop('_merge', 1)
Out[277]:
emp_no no_children status
2 23 5 5
Подробнее
In [278]: df1.merge(df2, indicator=True, how='left')
Out[278]:
emp_no no_children status _merge
0 1 3 3 both
1 2 2 2 both
2 23 5 5 left_only
In [279]: df1.merge(df2, indicator=True, how='left').query('_merge == "left_only"')
Out[279]:
emp_no no_children status _merge
2 23 5 5 left_only