> lección 22/34 · 14 min

Limpieza de texto con .str

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.

Sintaxis
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.

Cargando Python… la primera vez puede tardar unos segundos.

Primero intenta: las pistas aparecen después de 2 intentos con un resultado incorrecto (los errores de código no cuentan). Llevas 0.

Aprueba las tareas de esta lección para ver el cierre.