resample necesita la fecha como índice antes de poder agrupar por periodo.

Arrastra en el orden correcto los pasos para un reporte mensual con resample.

1df = df.set_index('fecha')
2reporte = df.resample('M')['ventas'].sum()
3df['fecha'] = pd.to_datetime(df['fecha'])