resample agrupa específicamente por PERIODOS DE TIEMPO (día, mes, año), y a diferencia de groupby, SÍ incluye los periodos sin ningún dato, con NaN.

Paso 1 de 3 · ve a tu ritmo

1
df.resample('M')['ventas'].sum() Agrupa por mes, EXISTA o no dato ese mes