Jak zaimplementować „in” i „nie w” dla ramki danych Pandas

Jak mogę uzyskać odpowiedniki SQLIN iNOT IN?

Mam listę z wymaganymi wartościami. Oto scenariusz:

df = pd.DataFrame({'countries':['US','UK','Germany','China']})
countries = ['UK','China']

# pseudo-code:
df[df['countries'] not in countries]

Moja obecna metoda jest następująca:

df = pd.DataFrame({'countries':['US','UK','Germany','China']})
countries = pd.DataFrame({'countries':['UK','China'], 'matched':True})

# IN
df.merge(countries,how='inner',on='countries')

# NOT IN
not_in = df.merge(countries,how='left',on='countries')
not_in = not_in[pd.isnull(not_in['matched'])]

Ale to wydaje się okropne. Czy ktoś może to poprawić?

questionAnswers(5)

yourAnswerToTheQuestion