Agrupar pagos y crear resúmenes
Objetivos
Vas a transformar las 16 044 filas de pago en tablas más pequeñas que respondan preguntas de conteo e importe.
Concepto
Agrupar reúne filas con el mismo valor en una categoría. groupby define los grupos; agg calcula una o más medidas dentro de cada grupo. La tabla original tiene una fila por pago. Al agrupar por mes, la salida tiene una fila por mes presente; al agrupar por staff_id, una fila por identificador.
La suma por staff_id describe los pagos procesados por ese identificador dentro de este extracto. No indica en qué tienda ocurrió el pago ni mide el desempeño de una persona.
Ejemplo
payments["payment_month"] = payments["payment_date"].dt.to_period("M").astype(str)
monthly = (
payments.groupby("payment_month", as_index=False)
.agg(
payment_count=("payment_id", "count"),
total_amount=("amount", "sum"),
)
)
print(monthly)La salida tiene cinco filas. En julio de 2005 aparecen 6 709 pagos y un total de 28 368.91. Las demás columnas explican qué cuenta cada fila resumida.
Práctica guiada
Añade average_amount como promedio de amount y ordena la tabla por total_amount descendente. Comprueba que payment_count suma 16 044.
Reto
Crea una tabla por staff_id con cantidad de pagos, total de amount y promedio. Ordena por staff_id y verifica que las cantidades sumen 16 044.
Intenta el reto antes de consultar las pistas.
Quiz
Comprobación
Antes de interpretar un resumen, di qué representa una fila y comprueba sus totales contra la tabla original. La siguiente lección compara medidas de centro.