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.
CodePudding user response:
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