Как я могу получить эквиваленты SQL IN
и NOT IN
?
У меня есть список с требуемыми значениями. Здесь сценарий:
df = pd.DataFrame({'countries':['US','UK','Germany','China']})
countries = ['UK','China']
# pseudo-code:
df[df['countries'] not in countries]
Мой текущий способ сделать это:
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'])]
Но это кажется ужасным клочем. Может ли кто-нибудь улучшить его?