DÍA 08Resumir y entender patrones · Python para Análisis de Datos y Estadística

Resume pagos por mes y detecta saltos temporales antes de interpretar porcentajes.

Día 8 20 minIntermedio

Pagos de Sakila para análisis con pandas

Exportación original reducida; 16 044 filas; una fila por pago; payment_id es la clave; no contiene nombres ni correos.

Leer cambios entre meses observados

Objetivos

Vas a resumir fechas por mes y revisar si dos filas de la tabla resumen son realmente meses consecutivos.

Concepto

Una serie temporal organiza medidas por fecha. Agrupar por mes produce una fila por mes que aparece en los datos. El porcentaje de cambio compara cada fila con la anterior; si falta un mes, ese cálculo compara meses separados y no debe llamarse cambio mensual.

Este extracto tiene registros en mayo, junio, julio y agosto de 2005 y febrero de 2006. Hay seis meses entre agosto y febrero. La falta de filas en otros meses es una propiedad de este extracto; no demuestra que no hubiera actividad fuera de él.

Ejemplo

monthly = (
    payments.assign(
        payment_month=payments["payment_date"].dt.to_period("M"),
        month_number=payments["payment_date"].dt.year * 12
        + payments["payment_date"].dt.month,
    )
    .groupby("payment_month", as_index=False)
    .agg(
        payment_count=("payment_id", "count"),
        total_amount=("amount", "sum"),
        month_number=("month_number", "first"),
    )
    .sort_values("payment_month")
)
 
monthly["months_between_rows"] = monthly["month_number"].diff()
monthly["change_since_previous_observation_pct"] = (
    monthly["total_amount"].pct_change(fill_method=None) * 100
)
print(monthly[["payment_month", "payment_count", "months_between_rows",
               "change_since_previous_observation_pct"]])

Entre agosto de 2005 y febrero de 2006 hay seis meses de distancia; el total observado cae 97.86 % entre esos dos registros. Ese valor no es un cambio de un mes.

Práctica guiada

Muestra payment_month como texto con formato YYYY-MM y marca qué filas tienen months_between_rows igual a 1. Compara solo periodos consecutivos si tu pregunta es mensual.

Reto

Añade a tu resumen una columna con los meses transcurridos desde el periodo anterior y calcula el cambio porcentual entre filas observadas. Identifica qué comparación no es mensual.

Intenta el reto antes de consultar las pistas.

Quiz

1. ¿Qué significa la primera fila de un resumen mensual con groupby?
2. ¿Por qué agosto a febrero no es un cambio mensual?
3. ¿Qué describe un porcentaje de cambio calculado sobre filas observadas?

Comprobación

Antes de informar un porcentaje, indica los dos periodos, cuántos meses los separan y qué representa la fuente. La próxima parte representa y comunica estos resultados.

TU PROGRESO

Cargando estado…