¿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
print("oaxaca de juarez".title())print("cd. de méxico".title())Adivinar está bien. Lo que escribas se queda en este navegador y te espera en tu curso.
Ejemplo 2 de 3, se abre cuando expliques este
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:
str.strip()quita los espacios del principio y del final. "cdmx " se vuelve "cdmx".str.lower()convierte todo a minúsculas. "CDMX" y "Cdmx" se vuelven "cdmx".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.
Tu turno
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.
Datos: socios-cooperativa, 30 filas
| Fila | Quitar | ||||||
|---|---|---|---|---|---|---|---|
| 1 | |||||||
| 2 | |||||||
| 3 | |||||||
| 4 | |||||||
| 5 | |||||||
| 6 | |||||||
| 7 | |||||||
| 8 | |||||||
| 9 | |||||||
| 10 | |||||||
| 11 | |||||||
| 12 | |||||||
| 13 | |||||||
| 14 | |||||||
| 15 | |||||||
| 16 | |||||||
| 17 | |||||||
| 18 | |||||||
| 19 | |||||||
| 20 |
Enter guarda; Esc deshace; vacía es un valor faltante
Tab agrega sangría; Esc y Tab para salir
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?