Gaussian Process Modeling (GPM) is a non-parametric approach that is excellent at interpolating non-uniformly sampled data which have an expected temporal correlation structure.
There are numerous resources on GPM located here:
Including this excellent treatment on GPMs:
There are GPM capabilities available in Python in SciKitLearn:
Using GPM requires you to have some "prior" that describes the correlation (which GPM then fine-tunes from the observed data by solving for kernel hyper-parameters). Arguably the simplest covariance model is the "squared exponential" kernel function which simply says that "things that are close together tend to have similar values", which basically causes GPM to act like a smoothing function. Changing the kernel function based on beliefs concerning temporal correlation can result in different behaviors (for instance, you can add a kernel component that reflects periodic repetition in the data).
An arguably simpler approach would be splines (typically cubic splines), which do smoothing interpolation in a specific way and are also happy to deal with nonuniformly-sampled data. This may suit your needs just fine if you just need some basic smooth interpolation and don't have a strong opinion about the form it should take.
The advantage of GPMs over splines is that they provide a lot more flexibility and control over the behavior of the interpolation based on prior beliefs about its specific temporal covariance structure and are generally more adaptable to the data in terms of inferring underlying structure. Splines are simpler to employ, but always behave in more or less the same fashion and have very limited ability to adapt to underlying structure in the data (apart from the constraint that they always pass through the observed anchor points and interpolate smoothly in a particular fashion).
Additionally, you may not want your interpolation function to always anchor to the observed data exactly (if you believe that the observations are noisy, for instance). In this case, GPMs also have the additional advantage that they can account for noise in the observation data.
(The Kalman filter can do similar things to GPM using "forward and backward smoothing", and has a lot in common with the GPM approach, but GPM is arguably more elegant in its formulation and application in this case, particularly if you don't have a requirement for strictly-causal or incrementally-updating behavior).
There are a number of interpolation capabilities available in Python (including univariate splines, which would be suitable to try with your data).