Create a pandas dataframe with a date column:
import pandas as pd
import datetime
TODAY = datetime.date.today()
ONE_WEEK = datetime.timedelta(days=7)
ONE_DAY = datetime.timedelta(days=1)
df = pd.DataFrame({'dt': [TODAY-ONE_WEEK, TODAY-3*ONE_DAY, TODAY], 'x': [42, 45,127]})
The dates have gaps:
dt x
0 2018-11-19 42
1 2018-11-23 45
2 2018-11-26 127
Now, fill in the missing dates:
r = pd.date_range(start=df.dt.min(), end=df.dt.max())
df.set_index('dt').reindex(r).fillna(0.0).rename_axis('dt').reset_index()
Voila! The dataframe no longer has gaps:
dt x
0 2018-11-19 42.0
1 2018-11-20 NaN
2 2018-11-21 NaN
3 2018-11-22 NaN
4 2018-11-23 45.0
5 2018-11-24 NaN
6 2018-11-25 NaN
7 2018-11-26 127.0
Leave a Reply
You must be logged in to post a comment.