DÍA 03Análisis de pagos con pandas · Python para Análisis de Datos y Estadística

Agrupa pagos por la tienda principal asignada a cada cliente y calcula métricas de la muestra.

Día 3 18 minInicial

Sakila: pagos de clientes (datos sintéticos de práctica)

Ocho filas sintéticas con seis columnas de un JOIN payment/customer; grano: pago; clave: payment_id. Sin nombres ni datos personales.

Resumir pagos por tienda principal del cliente

Objetivos

Vas a cambiar el nivel del análisis: de una fila por pago a una fila por tienda principal asignada a los clientes.

Concepto

En este extracto, store_id viene de customer.store_id: identifica la tienda principal asignada al cliente. groupby("store_id") reúne los pagos de clientes con la misma tienda de referencia. No identifica necesariamente la tienda donde ocurrió un alquiler o se procesó un pago.

La suma describe únicamente las filas sintéticas incluidas en este fixture. No representa ventas ni ingresos observados de una tienda.

Ejemplo

payments_by_customer_home_store = (
    payments.groupby("store_id")
    .agg(
        payment_count=("payment_id", "count"),
        sample_amount_total=("amount", "sum"),
        sample_average_payment=("amount", "mean"),
    )
    .reset_index()
    .sort_values("store_id")
)
 
print(payments_by_customer_home_store)

payment_count cuenta pagos porque cada fila tiene un payment_id. Si el extracto tuviera varias filas por pago, el conteo ya no respondería a la misma pregunta.

Nota

Ojo con la conclusión: el código produce un resumen correcto del archivo; la calidad de una conclusión depende de que la fuente cubra el periodo y los pagos que quieres analizar.

Práctica guiada

Agrega median_payment=("amount", "median") dentro de agg. Compara la mediana con el promedio y piensa cuál se movería más si hubiera un pago muy alto.

Reto

Obtén una fila por customer_id con cantidad de pagos y total de la muestra. Ordena el resultado por total descendente. No llames “ventas de la tienda” a la suma agrupada por la tienda principal del cliente.

Quiz

¿Cuántas filas tendrá payments_by_customer_home_store si el fixture contiene clientes asignados a dos tiendas?

  • A. Una por pago.
  • B. Una por tienda.
  • C. Una por cliente.

Respuesta: B. groupby("store_id") genera un grupo por cada tienda principal presente en los clientes del fixture.

Cierre del fixture

Has leído, filtrado y resumido un extracto con un grano documentado. Los próximos temas estadísticos necesitarán un conjunto completo y validado; este fixture solo comprueba la arquitectura de contenido.

TU PROGRESO

Cargando estado…