Python pandas – el valor de la nueva columna si el elemento está en la lista

Quiero crear una nueva columna en el dataframe de pandas. La primera columna contiene nombres de países. La lista contiene países en los que estoy interesado (por ejemplo, en la UE). La nueva columna debe indicar si el país desde el dataframe está en la lista o no.

A continuación se muestra la versión abreviada del código:

import pandas as pd import numpy as np EU = ["Austria","Belgium","Germany"] df1 = pd.DataFrame(data={"Country":["USA","Germany","Russia","Poland"], "Capital":["Washington","Berlin","Moscow","Warsaw"]}) df1["EU"] = np.where(df1["Country"] in EU, "EU", "Other") 

El error que recibo es: ValueError: el valor de verdad de una serie es ambiguo. Utilice a.empty, a.bool (), a.item (), a.any () o a.all ()

No sé cuál es el problema y cómo resolverlo. ¿Qué me estoy perdiendo? Estoy usando Anaconda en Windows.

Gracias

Utilice isin para chequear la membresía:

 df1["EU"] = np.where(df1["Country"].isin(EU), "EU", "Other") print (df1) Capital Country EU 0 Washington USA Other 1 Berlin Germany EU 2 Moscow Russia Other 3 Warsaw Poland EU