¿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.
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: En la hoja de ventas, 44 de 60 renglones tienen el `descuento` vacío. ¿Qué hace falta antes de llenarlos?
Comprueba lo que sabes: Tienes 60 renglones de ventas y corres `ventas.drop_duplicates()`. Te regresa 60. ¿Qué puedes concluir?
Comprueba lo que sabes: Conviertes la columna `monto` de texto a número y el código corre sin ningún error. ¿Qué sabes?
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 pd
ventas = 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: se guarda tal como la escribiste para compararla. Solo tú y tu Maestro ven tus predicciones.
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.