0

I creat a df with datetimeindex like this

index                               value
2020-03-04T16:00:00.000000000        5
2020-03-04T16:05:00.000000000        8
2020-03-04T16:10:00.000000000        4
2020-03-04T16:15:00.000000000        1

I want to extend the range of my df by adding 10 rows at the end with respecting the 5min step

I try something like this, with no success

Jonathan Roy
  • 405
  • 1
  • 6
  • 18

1 Answers1

0

Use date_range for new DatetimeIndex by maximal index with next 5 minutes and then use DataFrame.append with DataFrame constructor:

r = pd.date_range(df.index.max() + pd.Timedelta(5, 'Min'), freq='5Min', periods=10)

df = df.append(pd.DataFrame(index=r), sort=True)
print (df)
                     value
2020-03-04 16:00:00    5.0
2020-03-04 16:05:00    8.0
2020-03-04 16:10:00    4.0
2020-03-04 16:15:00    1.0
2020-03-04 16:20:00    NaN
2020-03-04 16:25:00    NaN
2020-03-04 16:30:00    NaN
2020-03-04 16:35:00    NaN
2020-03-04 16:40:00    NaN
2020-03-04 16:45:00    NaN
2020-03-04 16:50:00    NaN
2020-03-04 16:55:00    NaN
2020-03-04 17:00:00    NaN
2020-03-04 17:05:00    NaN

If need specify value:

df = df.append(pd.DataFrame({'value': 0}, index=r), sort=True)
print (df)
                     value
2020-03-04 16:00:00      5
2020-03-04 16:05:00      8
2020-03-04 16:10:00      4
2020-03-04 16:15:00      1
2020-03-04 16:20:00      0
2020-03-04 16:25:00      0
2020-03-04 16:30:00      0
2020-03-04 16:35:00      0
2020-03-04 16:40:00      0
2020-03-04 16:45:00      0
2020-03-04 16:50:00      0
2020-03-04 16:55:00      0
2020-03-04 17:00:00      0
2020-03-04 17:05:00      0
jezrael
  • 822,522
  • 95
  • 1,334
  • 1,252