You time interpolator does not limit the nans to inside the available data range. At present, values corresponding to below the available time range are assigned NaNs, but above the time range you'll get forward-filled values.
A fix is given below:
def time_interpolator(timekwarg):
"""{docstring}"""
# Note: df will be passed into this function's local scope
# t will be provisioned as a keyword argument
df_ = df.reindex(df.index.union(t))
df_interpolated = df_.interpolate(method='time', limit_area='inside')
result = df_interpolated.reindex(t)
return result
You time interpolator does not limit the nans to inside the available data range. At present, values corresponding to below the available time range are assigned NaNs, but above the time range you'll get forward-filled values.
A fix is given below: