Skip to content
Empieza gratis

¿Cómo limpio texto escrito de varias formas en pandas? strip, lower y un mapa

Junta las 12 formas de escribir la ciudad en 4 nombres oficiales con tres líneas de pandas, y comprueba que no se quedó ninguna afuera.

Curso gratis. Tu Maestro, una IA, .

En el módulo anterior hiciste la lista de problemas y Marisol contestó lo que solo ella sabía. Ahora empiezas a arreglar, y la regla de todo este módulo es una: cada arreglo es una línea de código que lee el dato crudo y deja el limpio. Nada de buscar y reemplazar a mano.

El primer problema de la lista es la ciudad: 12 formas de escribir 4 ciudades. Antes de ver la solución, predice qué hacen tres atajos que mucha gente prueba primero.

Poner cada palabra con mayúscula

Ejemplo 1 de 3

example.py
print("oaxaca de juarez".title())
print("cd. de méxico".title())

Adivinar está bien: se guarda tal como la escribiste para compararla. Solo tú y tu Maestro ven tus predicciones.

Ejemplo 2 de 3, se abre cuando expliques este

Haz tu predicción

Tres líneas, en este orden

La receta tiene tres pasos, y el orden importa porque cada uno deja el texto más parejo para el siguiente:

  1. str.strip() quita los espacios del principio y del final. "cdmx " se vuelve "cdmx".
  2. str.lower() baja todo a minúsculas. "CDMX" y "Cdmx" se vuelven "cdmx".
  3. map() con un diccionario que tiene cada forma que encontraste y el nombre oficial que le corresponde.

Los dos primeros pasos los decides tú: nadie va a defender que "Puebla" y "puebla" son ciudades distintas. El mapa es distinto. Ahí van decisiones que salieron de preguntar, como que en esta hoja "oaxaca" quiere decir la capital, Oaxaca de Juárez, y no el estado. Por eso el mapa es una lista escrita y visible, no un truco escondido en el código: cualquiera puede leerla y decir "esa no".

¿Por qué no quitar también los acentos y ya? Porque "oaxaca de juarez" y "oaxaca de juárez" quedarían iguales, sí, pero el nombre oficial lleva acento, y el reporte lo tiene que llevar. El mapa ya resuelve las dos formas sin perder nada.

Aquí está la receta completa sobre la hoja de ventas, un paso a la vez. Abre cada paso cuando hayas pensado qué va a salir.

De 12 formas a 4 ciudades

Ejemplo resuelto · 5 pasos

La columna ciudad de la hoja de marzo tiene 12 valores distintos para 4 ciudades. Quieres una columna con el nombre oficial de cada una, y saber que no se quedó ninguna venta sin ciudad.

Piensa el siguiente paso por tu cuenta y luego ábrelo para comparar.

Fíjate en el último paso. Sin él, la receta está incompleta: el mapa funciona con las formas que viste hoy, y la hoja de abril va a traer alguna nueva. El conteo de huecos después de map() es tu alarma. Si sale 0, el mapa cubrió todo; si sale 1, hay una forma que no conocías y tienes que decidir (o preguntar) qué ciudad es antes de seguir.

¿Tu columna tiene formas que no sabes a qué valor oficial mandar? Pregúntale a tu Maestro cómo armar el mapa.

Inténtalo

El padrón de socios tiene el mismo problema en municipio: hay "pluma hidalgo", "Pluma Hidalgo " con espacio, "San Agustin Loxicha" sin acento y "Sta. María Huatulco" abreviado. Los municipios oficiales son cuatro: San Agustín Loxicha, Candelaria Loxicha, Pluma Hidalgo y Santa María Huatulco. Si no te sale, pídele a tu Maestro una pista sin la respuesta.

Normaliza municipio: quita espacios, baja a minúsculas y aplica un mapa MUNICIPIOS con cada forma que encuentres. Terminaste cuando valuecounts(dropna=False) muestra exactamente 4 municipios y el conteo de huecos de municipio es 0.

Normaliza municipio: quita espacios, baja a minúsculas y aplica un mapa MUNICIPIOS con cada forma que encuentres. Terminaste cuando value_counts(dropna=False) muestra exactamente 4 municipios y el conteo de huecos de municipio es 0.

Ejecuta tu código para ver lo que imprime y el valor de su última expresión. Cada ejecución empieza de nuevo.

Listo para ejecutar tu código.

Ejecuta tu código para ver su salida aquí.

Datos: socios-cooperativa, 30 filas

Enter guarda una celda y Escape la deja como estaba. Deja una celda vacía para un valor faltante.

Los datos del ejercicio, "socios-cooperativa". Tus cambios corren con tu código.
FilaQuitar
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Página 1 de 2

Ejecútalo tú

Con la columna así, un conteo de socios por municipio por fin dice la verdad: San Agustín Loxicha 11, Pluma Hidalgo 8, Candelaria Loxicha 6 y Santa María Huatulco 5. Antes de limpiar, Pluma Hidalgo salía partida en tres renglones y San Agustín en dos.

Comprueba lo que sabes: En abril alguien captura una venta con la ciudad "Cd. Mx.". Corres la misma receta con el mismo mapa. ¿Qué pasa con esa venta?