Melt the butter in a large saucepan. Add the shallot and cook over a low heat, stirring occasionally, for 5 minutes. Turn the heat up, stir in the spinach, season with salt and cook for a few minutes, until wilted.
Lift out of the pan with tongs and drain in a sieve to remove any excess water.
Meanwhile, cook the pasta in a large pan of salted, boiling water until al dente. Put the cream, ricotta and ½ of the lemon zest and parmesan into a serving dish. Season well, then beat until smooth and combined.
Drain the pasta and stir into the ricotta mixture. Add the spinach, toss lightly, and serve immediately, scattered with the remaining zest and cheese.