pandas фильтрация с использованием функции isin - PullRequest
1 голос
/ 12 февраля 2020

У меня есть два кадра данных, как показано ниже: *

Ожидаемый результат:

ID      Name
3       Dravid

Я пробовал ниже код

def diff(first, second):
        second = set(second)
        units_in_unit_table = [item for item in first if item not in second]
        return units_in_unit_table
id_df2 = diff(df2, df1)

df3 = df1[df1['ID'].isin(id_df2)]

1 Ответ

1 голос
/ 12 февраля 2020

Похоже, ваше решение следует упростить, передав уникальные значения в isin на Series.unique с инвертированной маской на ~:

df3 = df1[~df1['ID'].isin(df2['ID'].unique())]

или set :

df3 = df1[~df1['ID'].isin(set(df2['ID']))]

print (df3)
   ID    Name
2   3  Dravid
...