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
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.