¿Contar filas es contar ventas?
Averigua qué representa una fila del archivo y cuenta lo que la pregunta pide: tickets, no líneas de producto.
Curso gratis. Tu Maestro, una IA, .
La primera de las tres preguntas es la más sencilla y la que más números salva: ¿qué representa una fila? En el archivo de la ferretería, una fila no es una venta. Es un producto dentro de un ticket. Si alguien se lleva un martillo, clavos y guantes, ese ticket ocupa tres filas.
A eso se le llama la granularidad de una tabla: el nivel de detalle de cada fila. La misma información puede venir con una fila por ticket, una por producto dentro de un ticket o una por día y sucursal. Ninguna es mejor que otra. Lo que importa es que la cuenta que hagas coincida con lo que tu pregunta cuenta.
Calienta con una tabla de cinco filas. Antes de ejecutar, escribe qué crees que imprime:
Tres tickets: el primero lleva tres productos y los otros dos, uno cada uno.
Tres tickets: el primero lleva tres productos y los otros dos, uno cada uno.
Filas contra tickets
Ejemplo 1 de 2
import pandas as pd
tabla = pd.DataFrame({
"ticket": ["T-1", "T-1", "T-1", "T-2", "T-3"],
"producto": ["Martillo", "Clavos", "Guantes", "Pintura", "Guantes"],
})
print(len(tabla))
print(tabla["ticket"].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
Cómo saber qué es una fila
Casi ningún archivo lo dice en voz alta. Lo averiguas con tres preguntas que tardan un minuto:
- ¿Qué columna debería identificar cada cosa? En ventas, el número de ticket. En nómina, el número de empleado. En una clínica, el expediente.
- ¿Esa columna se repite? Si
len(data)ydata["ticket"].nunique()dan lo mismo, cada ticket ocupa una fila. Si las filas son más, hay tickets con varias filas. - ¿Qué distingue a dos filas del mismo ticket? Mira dos filas con el mismo número de ticket. Si lo único que cambia es el producto, una fila es un producto dentro de un ticket. Esa frase es la respuesta que buscas.
Para mirar las primeras filas, la línea es data.head(). Para comparar las dos cuentas:
data.head(8) # las primeras 8 filas, para mirarlas
len(data) # cuántas filas
data["ticket"].nunique() # cuántos tickets distintos¿Cuántas ventas hubo en Zapopan?
Ejemplo resuelto · 4 pasos
La IA contestó 89. Quieres saber si 89 son ventas. Intenta cada paso antes de abrirlo.
Piensa el siguiente paso por tu cuenta y luego ábrelo para comparar.
Inténtalo
El ejercicio ya cuenta filas y tickets del mes completo. Ejecútalo y compara: 312 filas contra 123 tickets. Luego haz lo mismo para Chapalita, la sucursal que atiende a muchos contratistas. Antes de ejecutar, adivina: ¿la diferencia entre filas y tickets será grande o chica en Chapalita? No sé por qué en Chapalita la diferencia es tan grande.
Ejecuta y compara las dos primeras líneas de la salida. Luego cuenta las filas y los tickets distintos de Chapalita. Terminas cuando ves los dos números de Chapalita y puedes decir con tus palabras por qué están tan lejos uno del otro.
Ejecuta y compara las dos primeras líneas de la salida. Luego cuenta las filas y los tickets distintos de Chapalita. Terminas cuando ves los dos números de Chapalita y puedes decir con tus palabras por qué están tan lejos uno del otro.
Ejecuta tu código para ver lo que imprime y el valor de su última expresión. Cada ejecución empieza de nuevo. Ctrl+Enter ejecuta tu código. Tab agrega sangría; para salir del editor, presiona Escape y luego Tab.
Listo para ejecutar tu código.
Ejecuta tu código para ver su salida aquí.
Datos: ventas-marzo, 312 filas
Enter guarda una celda y Escape la deja como estaba. Deja una celda vacía para un valor faltante.
| Fila | Quitar | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | |||||||||||
| 2 | |||||||||||
| 3 | |||||||||||
| 4 | |||||||||||
| 5 | |||||||||||
| 6 | |||||||||||
| 7 | |||||||||||
| 8 | |||||||||||
| 9 | |||||||||||
| 10 | |||||||||||
| 11 | |||||||||||
| 12 | |||||||||||
| 13 | |||||||||||
| 14 | |||||||||||
| 15 | |||||||||||
| 16 | |||||||||||
| 17 | |||||||||||
| 18 | |||||||||||
| 19 | |||||||||||
| 20 |
En Chapalita deberías ver 88 filas y 18 tickets: casi cinco productos por ticket. Si una IA te dijera "Chapalita tuvo 88 ventas", estaría contando líneas, y Chapalita quedaría casi empatada con Zapopan, la sucursal con más filas, cuando en tickets tiene 18 contra 30 de Zapopan y es de las que menos tickets tiene.
Ahora fíjate en Tlaquepaque: 22 filas y 22 tickets. Ahí contar filas da lo mismo que contar tickets, porque cada ticket de Tlaquepaque lleva un solo producto. Esa coincidencia es peligrosa: si revisas un número de Tlaquepaque, todo cuadra, y el error aparece hasta que alguien mira otra sucursal.