> misión 5/9 · 25 min

Agrupar y resumir

Mensaje de Antonia Llancaqueo, cofundadora de Tienda Online Pewen

Con los datos limpios, quiero conocer a nuestros mejores clientes. Calcula cuánto vale cada pedido, cuánto nos compró cada cliente en pedidos entregados y dame el top 5. Les vamos a enviar un regalo de fin de año.

Concepto

Una columna nueva se calcula con otras columnas, fila por fila, como una fórmula rellenada hacia abajo:

pedidos["monto"] = pedidos["cantidad"] * pedidos["precio_unitario"]

groupby agrupa y resume, igual que GROUP BY en SQL o una tabla dinámica:

import pandas as pd
pedidos = pd.read_csv("datos/pedidos.csv")
print(pedidos.groupby("estado")["cantidad"].sum())

Se lee así: agrupa por estado, toma la columna cantidad y súmala. En vez de sum() puedes usar mean(), count(), max() o min().

Para un top: sort_values(ascending=False) ordena de mayor a menor y head(5) deja los primeros cinco.

En esta misión, pedidos ya viene limpio: el código de la misión anterior corre antes del tuyo.

> tarea Python

Agrega a pedidos la columna monto (cantidad por precio unitario). Guarda en entregados los pedidos entregados, en ventas_por_cliente la suma del monto de cada cliente en esos pedidos, y en top_5 los cinco clientes que más compraron, de mayor a menor.

Cargando Python… la primera vez puede tardar unos segundos.

Primero intenta: las pistas aparecen después de 2 intentos con un resultado incorrecto (los errores de código no cuentan). Llevas 0.

> decisión

El top 5 suma solo pedidos entregados. Un cliente con muchos pedidos devueltos queda fuera. ¿Está bien?

Cargando opciones…

Aprueba las tareas de esta misión para ver el cierre.