Skip to content
Empieza gratis

¿Cómo calcular el ticket promedio cuando un ticket ocupa varias filas?

Descubre por qué el "ticket promedio" de la IA era el promedio de otra cosa, y calcula el de verdad sumando por ticket.

Curso gratis. Tu Maestro, una IA, .

La IA del ejemplo dijo "ticket promedio de $378.83". Ya sabes de dónde salió: es el promedio de la columna importe, y en este archivo cada fila es un producto. Así que $378.83 es lo que cuesta, en promedio, una línea de producto. Lo que tu jefa pidió es lo que paga, en promedio, una persona en caja.

Piénsalo con el súper. El precio promedio de los productos que metes al carrito no es lo que pagas en promedio por carrito. Si llevas veinte productos de $30, el promedio por producto es $30 y el carrito cuesta $600. Mismo carrito, dos promedios, dos preguntas.

De líneas a tickets

Para el ticket promedio hay que cambiar de nivel antes de promediar:

  1. Junta las filas de cada ticket

    Todas las líneas del ticket T-1025 van juntas, todas las del T-1038 van juntas, y así con cada ticket.

  2. Suma el importe de cada ticket

    Ahora tienes una tabla nueva con una fila por ticket y su total. Cambiaste la granularidad: de producto a ticket.

  3. Promedia esos totales

    El promedio de los totales por ticket es el ticket promedio. Es lo que paga, en promedio, una persona en caja.

En pandas, los dos primeros pasos son una sola línea con groupby, que significa "agrupar por". Si usas Excel, es lo mismo que una tabla dinámica con el ticket en las filas y la suma de importe en los valores:

Pythonlínea 1
Inicio de la línea 1. por_ticket = data.groupby("ticket")["importe"].sum()   # una fila por ticket, con su total Fin de la línea 1.len(por_ticket)                                         # cuántos tickets haypor_ticket.mean()                                       # el ticket promedio
groupby no borra ni cambia nada de data: arma una tabla nueva, más resumida.

Lee la línea 1 de izquierda a derecha: "agrupa data por ticket, toma la columna importe y súmala". El resultado tiene una fila por ticket. Sobre esa tabla, .mean() ya es el promedio por ticket.

Cuando el error cambia el ganador

Un promedio al nivel equivocado no solo da un número más chico. También puede cambiar quién gana una comparación. Imagina que le preguntas a tu asistente "¿qué sucursal tiene el ticket promedio más alto?" y te responde: "Tlaquepaque, con $864.50". Las barras comparan los dos promedios de cada sucursal, calculados en el sandbox sobre el archivo tal como viene. Avanza paso por paso:

Usa las flechas izquierda y derecha para cambiar de paso.

Paso 1 de 4

Dos promedios por sucursal

Cada sucursal tiene dos barras con los mismos datos: el promedio por línea de producto y el promedio por ticket. Antes de seguir, adivina cuál de las dos usó la IA.

La respuesta del asistente no estaba mal calculada. Calculó bien el promedio equivocado, y con eso puso a Tlaquepaque en primer lugar cuando, por ticket, queda en tercero. Si esa respuesta llegara a una junta, alguien podría copiar en Chapalita lo que "funciona" en Tlaquepaque.

Inténtalo

Calcula el ticket promedio del mes con groupby, y después el de Chapalita. El primer número debería quedar muy por encima de los $378.83 de la IA. No me queda claro qué hace groupby.

Tu turno

La primera parte imprime el promedio por línea, el que dio la IA. Completa la segunda: agrupa por ticket, suma el importe y promedia. Después calcula el ticket promedio solo de Chapalita. Terminas cuando ves los tres números: por línea, por ticket del mes y por ticket de Chapalita.

Datos: ventas-marzo, 312 filas
Los datos del ejercicio, "ventas-marzo". Tus cambios corren con tu código.
FilaQuitar
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Página 1 de 16

Deberías ver $960.94 de ticket promedio en el mes: más del doble de lo que dijo la IA. Y $2,449.11 en Chapalita. Todavía no es el número final para tu jefa, porque el archivo trae cancelados y filas repetidas, y de eso trata el módulo 4. Pero el error más grande ya está corregido: ahora promedias tickets.

Una precaución más: un ticket promedio también tiene una base. El de Tonalá sale de 12 tickets y el de Chapalita de 18, así que un solo ticket muy grande mueve mucho el promedio de una sucursal. Cuando reportes un ticket promedio por sucursal, di de cuántos tickets sale.

Error común: La trampa del promedio

En una tabla con varias filas por cosa (productos por ticket, consultas por paciente, quincenas por empleado), el promedio de una columna es el promedio de las filas. Primero calcula una medida adecuada por cada unidad que te interesa y luego compara esas unidades. Aquí el importe es aditivo: sumamos por ticket y después promediamos los totales.

Comprueba lo que sabes: Revisas el código de la IA para "el ticket promedio por sucursal" y ves data.groupby("sucursal")["importe"].mean(), en una tabla de una fila por producto. ¿Qué pasó?

Piensa en una tabla de tu trabajo que tenga varias filas por cada cosa que te importa (pedidos, pacientes, empleados, clientes). ¿Qué promedio te han reportado sobre ella, y a qué nivel crees que se calculó?

Reflexiona: Piensa en una tabla de tu trabajo que tenga varias filas por cada cosa que te importa (pedidos, pacientes, empleados, clientes). ¿Qué promedio te han reportado sobre ella, y a qué nivel crees que se calculó?

Solo tú y tu Maestro leen esto. Se queda en tu cuenta y se borra con ella.