Is there a method to extend a pandas time series into the past repeating the first value found in the serie?. For example:
serie = pd.Series( [1, 2, 3, 4, 5], index=pd.date_range("2022-01-01", "2022-01-05") )
And I want an extended series
In [13]: extended_serie Out[13]: 2021-12-28 1 2021-12-29 1 2021-12-30 1 2021-12-31 1 2022-01-01 1 2022-01-02 2 2022-01-03 3 2022-01-04 4 2022-01-05 5 Freq: D, dtype: int64
I’m asking if exists a direct method.
Advertisement
Answer
Let’s try reindex
and bfill
or use fill_value
argument of reindex
as mozway kindly pointing out.
out = (serie.reindex(pd.date_range('2021-12-28', serie.index[0]).append(serie.index)) .bfill()) # or out = serie.reindex(pd.date_range('2021-12-28', serie.index[0]).append(serie.index), fill_value=serie.iloc[0])
print(out) 2021-12-28 1.0 2021-12-29 1.0 2021-12-30 1.0 2021-12-31 1.0 2022-01-01 1.0 2022-01-01 1.0 2022-01-02 2.0 2022-01-03 3.0 2022-01-04 4.0 2022-01-05 5.0 dtype: float64