Skip to content
Empieza gratis

¿Cómo convierto mi limpieza en un script que pueda volver a correr?

Junta lo que hiciste en un script con su bitácora, córrelo sobre la hoja de abril y atrapa la forma de ciudad que el mapa no conoce.

Curso gratis. Tu Maestro, una IA, .

Es abril. Marisol te manda la hoja de ventas del mes y te hace la misma pregunta que en marzo: ¿cuántos kilos se vendieron en cada ciudad, y de dónde sale cada número?

Si limpiaste marzo a mano, hoy empiezas de cero: acordarte de qué cambiaste, buscar y reemplazar otra vez, esperar que no se te escape nada. Si lo limpiaste con código, hoy corres un archivo. Eso es un script: los mismos pasos de los módulos anteriores, escritos en orden en un archivo que puedes volver a correr con una hoja nueva.

Abril trae las mismas manías de captura que marzo y, casi seguro, alguna nueva. Esa es la prueba de un buen script: no que funcione con la hoja para la que lo escribiste, sino que te avise cuando llega algo que no conoce.

  1. ventas_abril.csv

    la hoja tal como llegó

  2. limpia.py

    las reglas de Marisol y los cinco pasos

    • Camino 1 de 2: escribe

      1. ventas_limpias.csv

        la tabla limpia

      Aquí termina.

    • Camino 2 de 2: anota

      1. bitacora.csv

        cada paso, con sus filas antes y después

      Aquí termina.

El archivo crudo no se toca: el script lee ese y escribe dos archivos nuevos.

Qué va dentro del script, y qué no

Un script de limpieza no es un invento nuevo. Es lo que ya hiciste, ordenado:

  • Las decisiones van arriba, como datos con nombre. El mapa CIUDADES y los topes KILOS_MIN y KILOS_MAX están al inicio del archivo. Quien lo lea ve las reglas sin buscarlas, y cambiar una regla es cambiar una línea.
  • Los pasos van en el orden que aprendiste. Ciudad, monto, descuento, kilos y, al final, los folios repetidos: el texto se limpia antes de buscar duplicados, o los duplicados no aparecen.
  • Cada paso llama a anota() con las filas de antes y de después y una nota. Es la misma función de diez segundos de la página de contar filas.
  • El archivo crudo no se toca. El script lee ventas_abril.csv (un archivo ) con y escribe ventas_limpias.csv y bitacora.csv.

Y lo que el script no decide: cuando algo no encaja, no lo adivina. Una forma de ciudad que el mapa no conoce queda vacía y el script lo dice en voz alta. Un monto que dice "pendiente" queda vacío y el conteo de huecos sube. Un kilo fuera de regla se marca, no se borra. Lo que el script deja sin resolver termina en una lista para Marisol.

¿Tu trabajo tiene una limpieza que repites cada mes? Cuéntale a tu Maestro qué pasos haces y en qué orden.

Inténtalo

El proyecto de abajo ya tiene los pasos de ciudad, monto, descuento y kilos. Faltan dos cosas, y la salida del script te dice cuáles. El archivo ventas_abril.csv es de solo lectura: es el crudo.

Tu turno

Corre uv run limpia.py en la terminal y lee la salida. Hay dos cosas por arreglar. Primero, la línea ATENCIÓN: Marisol confirma que "Cd. Mx." es la Ciudad de México; agrega esa forma al mapa CIUDADES, en minúsculas como las demás. Segundo, el paso de folios repetidos todavía no hace nada: escribe ahí la regla de Marisol (ordenar por captura y quedarte con la última de cada folio). Terminaste cuando la bitácora dice 20 -> 18 en el paso de folios repetidos, ya no sale ninguna línea ATENCIÓN y V-0062 queda con 59 kilos.

    Python 3.12· corre con tu cuenta

    Cuando el script corre completo, la salida tiene tres partes. La bitácora, un renglón por paso: ahí ves que ningún paso de texto o de tipos cambió el número de filas y que el de folios repetidos bajó de 20 a 18, las dos copias que sobraban. La comprobación con un caso que conoces: V-0062 se capturó con 95 kilos y se corrigió a 59, y el script se quedó con la corrección. Y la lista para Marisol: V-0071 con 700 kilos, V-0072 con su monto "pendiente" y V-0070 sin kilos.

    Esa lista no la arregla el script, y es lo correcto. Son tres mensajes cortos para quien conoce los datos, con folio y monto, como el de la página de huecos. Tu parte fue que ninguna de esas tres ventas desapareciera de la tabla en silencio.

    El mes que entra

    Para limpiar mayo cambias una línea, ARCHIVO, y corres el script otra vez. Si mayo trae una forma de ciudad nueva, la línea ATENCIÓN te la enseña, preguntas, agregas una entrada al mapa y vuelves a correr. Es el mismo conteo de huecos de la página de texto, ahora dentro de un archivo que no se te olvida.

    El proyecto se puede descargar para correrlo en tu computadora. Aquí la terminal de la página acepta uv run limpia.py y corre el proyecto. En tu computadora, uv run viene de uv, una herramienta aparte que corre el script y se encarga de sus dependencias sin que armes el entorno a mano (su documentación, en inglés, está abajo). El curso de Python for Data People, que aparece en la última página, te enseña a preparar ese entorno.

    Si algo de la salida no te cuadra, pídele a tu Maestro que te la lea paso por paso.

    Comprueba lo que sabes: Corres `limpia.py` con la hoja de mayo. Termina sin error, sin ninguna línea ATENCIÓN y con "Listo" al final. ¿Qué concluyes?

    Consejo: Antes de mandar el número

    Una limpieza que corre sola también se equivoca sola. La primera vez que uses un script con una hoja nueva, escoge dos o tres ventas que conoces de memoria y busca con qué se quedaron, como hizo el script con V-0062.