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ć?