Implementieren von "in" und "nicht in" für Pandas-Datenrahmen

Wie kann ich die Entsprechungen von SQL erreichenIN undNOT IN?

Ich habe eine Liste mit den erforderlichen Werten. Hier ist das Szenario:

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

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

Meine derzeitige Vorgehensweise ist wie folgt:

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'])]

Aber das scheint ein schrecklicher Trick zu sein. Kann jemand daran etwas verbessern?

Antworten auf die Frage(5)

Ihre Antwort auf die Frage