Tengo datos que contienen nombres de dominio:
url var1 www.CNN.com xsd www.Nbc.com wer www.BBc.com xyz www.fOX.com zyx ....Los datos son del tipo Serie. Estoy usando lo siguiente para convertir la variable URL a minúsculas:
df.apply(lambda x: x.astype(str).str.lower())Sin embargo, siguen siendo los mismos.
¿Qué estoy haciendo mal?
df['url'] = df['url'].str.lower()debe operar en la serie y reemplazarla con la versión en minúsculas.
Creo que necesita volver a asignar la salida, mejor es omitir apply si funciona solo con la url de la columna:
df = pd.DataFrame({'url': ['www.CNN.com', 'www.Nbc.com', 'www.BBc.com', 'www.fOX.com'], 'var1': ['XSD', 'wer', 'xyz', 'zyx']}) print (df) url var1 0 www.CNN.com XSD 1 www.Nbc.com wer 2 www.BBc.com xyz 3 www.fOX.com zyx #if types of column is str, astype is not necessary df.url = df.url.astype(str).str.lower() print (df) url var1 0 www.cnn.com XSD 1 www.nbc.com wer 2 www.bbc.com xyz 3 www.fox.com zyx Pero si necesita convertir todas las columnas de df a lowercase string :
df = df.astype(str).apply(lambda x: x.str.lower()) print (df) url var1 0 www.cnn.com xsd 1 www.nbc.com wer 2 www.bbc.com xyz 3 www.fox.com zyxPara convertir una sola columna podemos usar,
df.column_name.str.lower()o
df['column_name'].str.lower()Espero que esto ayude !