¿Por qué pandas cuenta "CDMX" y "cdmx " como ciudades distintas?
Predice cuántas ciudades cuenta pandas en una columna capturada a mano, y conoce los cinco pasos que vas a usar en todo el curso.
Curso gratis. Tu Maestro, una IA, .
Una cooperativa de café de la costa de Oaxaca le vende a cafeterías, hoteles y tiendas de cuatro ciudades. Marisol, que lleva las ventas, te manda la hoja de marzo con una pregunta sencilla: ¿cuántos kilos vendimos en cada ciudad? La hoja la llenaron tres personas a mano durante el mes, y se nota.
En este curso vas a limpiar esa hoja y el padrón de socios de la cooperativa, primero en pandas y luego en SQL, hasta dejar un script que puedas volver a correr el mes que entra. La cooperativa, Marisol y todos los datos son inventados para el curso (datos sintéticos), pero cada problema que vas a encontrar sale de hojas reales del trabajo.
Para hacer todas las prácticas necesitas abrir, seleccionar y filtrar tablas en pandas. El curso trabaja principalmente en pandas; el módulo 4 traduce el método a SQL y supone SELECT, WHERE y GROUP BY. Si solo conoces una herramienta puedes leer las equivalencias de la otra, pero las prácticas no son dos rutas separadas. Al final completas y adaptas un script ya preparado; no partes de un archivo vacío.
Antes de empezar, tres preguntas rápidas. Contesta con lo que piensas hoy, sin buscar nada: al final del curso vuelven las mismas tres y vas a poder comparar.
Comprueba lo que sabes, Punto de partida, 1 de 3: En la hoja de ventas, 44 de 60 renglones tienen el descuento vacío. ¿Qué hace falta antes de llenarlos?
Aquí marcas de dónde partes: al final verás cuánto avanzaste.
Comprueba lo que sabes, Punto de partida, 2 de 3: Tienes 60 renglones de ventas y corres ventas.drop_duplicates(). Te regresa 60. ¿Qué puedes concluir?
Aquí marcas de dónde partes: al final verás cuánto avanzaste.
Comprueba lo que sabes, Punto de partida, 3 de 3: Conviertes la columna monto de texto a número y el código corre sin ningún error. ¿Qué sabes?
Aquí marcas de dónde partes: al final verás cuánto avanzaste.
Ahora sí, la primera hoja. Abajo hay seis ventas con la ciudad tal como alguien la capturó. Antes de correr el código, escribe qué número crees que imprime y por qué.
¿Cuántas ciudades distintas?
Ejemplo 1 de 2
import pandas as pdventas = pd.DataFrame({ "ciudad": ["CDMX", "Ciudad de México", "cdmx ", "CDMX", "Puebla", "puebla"], "kilos": [40, 25, 10, 30, 50, 20],})print(ventas["ciudad"].nunique())Adivinar está bien. Lo que escribas se queda en este navegador y te espera en tu curso.
Ejemplo 2 de 2, se abre cuando expliques este
Lo que la computadora ve
Tú lees "CDMX", "Ciudad de México" y "cdmx " y piensas en un solo lugar. La computadora compara el texto letra por letra, y cualquier diferencia hace otro valor:
- Mayúsculas y minúsculas: "Puebla" y "puebla".
- Espacios que no se ven: "cdmx " con un espacio al final, " Guadalajara" con uno al inicio. En la pantalla se ven iguales; en la comparación no.
- Acentos: "Oaxaca de Juárez" y "oaxaca de juarez".
- Abreviaturas y apodos: "Cd. de México", "CDMX", "GDL".
- Nombres que pueden ser dos cosas: "Oaxaca" puede ser la capital o el estado entero. Ningún código lo decide; lo sabe quien capturó la venta.
En la hoja de marzo completa, la columna ciudad tiene 12 formas de escribir 4 ciudades. Cualquier conteo, suma o gráfica por ciudad sale partido en pedazos, y lo peor es que se ve bien: renglones ordenados, números redondos, ningún error.
¿Tienes una columna así en tu trabajo? Cuéntale a tu Maestro cómo se ve y qué reporte sale de ella.
El método de este curso
La tentación es abrir la hoja en Excel, buscar "cdmx", reemplazar y seguir. Funciona una vez. El mes que entra llega otra hoja igual de sucia, nadie recuerda qué se cambió, y si un reemplazo se llevó algo que no debía, ya no hay forma de saberlo. Por eso en este curso vas a trabajar siempre con cinco pasos, en este orden:
Mira sin cambiar nada
Cuenta los valores de cada columna, los huecos y los tipos. Escribe la lista de problemas antes de arreglar el primero.
Decide qué significa cada problema
Algunas cosas las decides tú, como que "puebla" es Puebla. Otras solo las sabe quien conoce los datos: si "Oaxaca" es la capital o si un hueco es cero. A esa persona se le pregunta.
Arréglalo en código
Cada cambio es una línea que puedes leer y volver a correr. El archivo original no se toca: el código lee el crudo y escribe uno limpio.
Cuenta las filas
Antes y después de cada paso. Si un paso que solo debía cambiar texto te deja menos filas, algo se perdió en el camino.
Anota qué cambió
Una bitácora con cada paso: qué hizo, cuántas filas había antes y después, y por qué. Así puedes contestar "¿de dónde salió este número?" dentro de tres meses.
En el resto de este módulo practicas los dos primeros pasos: mirar y decidir. En el segundo módulo arreglas en pandas y cuentas filas, en el tercero te encargas de los duplicados, en el cuarto haces lo mismo en SQL y en el último juntas todo en un script con su bitácora.
Una idea para quedarte desde hoy: limpiar no es dejar la tabla bonita, es dejarla verdadera y poder explicar cada cambio. Una tabla que se ve ordenada pero perdió las ventas que importaban es peor que la hoja sucia, porque ya nadie desconfía de ella.
Inténtalo
Una última pregunta para cerrar la página. Si dudas entre dos respuestas, pregúntale a tu Maestro qué cambia entre una y otra.
Comprueba lo que sabes: Corres value_counts() sobre la columna ciudad y ves "Guadalajara" con 6 ventas y " Guadalajara" (con un espacio al inicio) con 2. ¿Qué haces primero?