Python: Resample without equal
Should I first interpolate() to the approximate sample frequency and then downsample using resample()?

That sounds like the best approach. Use the initial interpolation to &quot;straighten out&quot; the sampling grid, i.e. you should interpolate so that the grid is uniform but has roughly the same amount of samples than the original. I would go with a cubic spline for that.
If you interpolate to a grid that is an integer multiple of your target sample rate, you don't need to call resample() You can just run a lowpass filter and throw away the extra samples.  That lowpass filtering will also remove a lot of the noise and the interpolation artifacts. resample() does the same thing, but by doing the lowpass manually, you have much better control over the process.