cómo reemplazar múltiples valores con un valor de Python

¿Cómo puedo reemplazar los datos 'Beer','Alcohol','Beverage','Drink' con solo 'Drink' ?

 df.replace(['Beer','Alcohol','Beverage','Drink'],'Drink') 

no funciona

Casi lo tienes. Necesitas pasar un diccionario a df.replace .

 df Col1 0 Beer 1 Alcohol 2 Beverage 3 Drink 

 x = dict.fromkeys(['Beer','Alcohol','Beverage','Drink'], 'Drink') df = df.replace(x) df Col1 0 Drink 1 Drink 2 Drink 3 Drink 

Esto funciona para coincidencias exactas y reemplazos. Para coincidencias parciales y concordancias de subcadenas, use

 df = df.replace(x, regex=True) 

Pruebe el siguiente enfoque:

 lst = ['Beer','Alcohol','Beverage','Drink'] pat = r"\b(?:{})\b".format('|'.join(lst)) df = df.replace(pat, 'Drink', regexp=True) 

Parece diferente de la solución de MaxU 🙂

 df.replace({'|'.join(['Beer','Alcohol','Beverage','Drink']):'Drink'},regex=True) 

Esto es solo un comentario adicional a la buena respuesta de COLDSPEED anterior (no tengo suficiente reputación para comentar directamente). Si desea que los cambios en df sean “permanentes” (en el lugar), también debe agregar el parámetro ‘inplace = True’ a la llamada al método de reemplazo:

 df.replace(x, inplace=True)