Concepto
Los datos que vienen de personas o de sistemas distintos casi nunca están parejos: " Tecnologia", "TECNOLOGIA " y "tecnologia" son la misma categoría escrita de tres formas. Si no las normalizas, al agrupar cuentan como tres grupos distintos y los totales quedan repartidos.
df["columna"] = df["columna"].str.strip().str.lower().str: métodos de texto para toda la columna. Los textos de Python tienen métodos como strip() o lower(). En una columna de pandas se usan a través de .str, y se aplican a cada valor.
strip(): espacios en los bordes. Quita los espacios del principio y del final, no los del medio. Es el problema más común e invisible: "hogar " y "hogar" se ven iguales en una tabla.
clientes["ciudad"].str.strip()lower() y upper(): mayúsculas. lower() pasa todo a minúsculas, upper() a mayúsculas y title() deja la primera letra de cada palabra en mayúscula.
Encadenar y guardar. Los métodos se encadenan de izquierda a derecha. Como todo en pandas, el resultado es una columna nueva: si no la asignas, la tabla no cambia.
clientes["ciudad"] = clientes["ciudad"].str.strip().str.title() # " TEMUCO" → "Temuco"Medir antes y después. nunique() cuenta los valores distintos. Compararlo antes y después de limpiar te muestra cuántas variantes se unificaron. Los valores vacíos no se cuentan.
Otros métodos útiles. .str.replace("á", "a") reemplaza un texto por otro y .str.contains("Mouse") da True en las filas que contienen ese texto, lo que sirve para filtrar.
> tarea Python
La tabla ventas_crudo ya está cargada y su columna categoria viene sucia. Guarda en categorias_antes cuántas categorías distintas tiene. Normaliza la columna categoria quitando los espacios de los bordes y pasándola a minúsculas, y guarda en categorias_despues cuántas categorías distintas quedan.
Primero intenta: las pistas aparecen después de 2 intentos con un resultado incorrecto (los errores de código no cuentan). Llevas 0.