If you want to do it yourself, programming a linear interpolation is really simple. You interpolate between sample 1 and sample 2 by calculating the slope to generate a line between the samples (y are your measurements and x the times)
\begin{align}
m &= \frac{y_1 - y_2}{x_2 - x_1} \\
y_1(x) &= m (x - x_1) + y_1
\end{align}
this is the linear interpolation between sample 1 and 2, it allows you to calculate the interpolated values for any point in time between sample 1 and 2. After that you just have to repeat this for sample 2 and 3 and so on. It's always the same, that means it comes down to writing one function and a loop. Just google linear interpolation and you can probably find some nice animations and youtube videos that visualize the process.
If you don't want to write the code yourself Scipy offers you multiple ways of interpolating data you can find a nice documentation here:
https://docs.scipy.org/doc/scipy/reference/tutorial/interpolate.html
the first way is probably the simplest (i just stole the examples from the page there):
from scipy.interpolate import interp1d
x = % array with the timestamps of your measurements
y = % your measurements
f1 = interp1d(x, y) % default is linear
f2 = interp1d(x, y, kind='cubic')
% xnew contains all points at which you want to sample the interpolated function
% linspace should go from your start time to your end time
xnew = np.linspace(0, 10, num=1001, endpoint=True)
ynew1 = f1(xnew) % generate the y values for all x values in xnew
ynew2 = f2(xnew)
now you can just plot(xnew, ynew) and it should look interpolated.
spline interpolation is another popular choice you can find it a bit further down with another example you could try that too if you'd like to. I personally like spline the most but none of them will magically generate data that means there really isn't a magical solution that is best, it depends on what you want to do with the result.