Using python pandas' Date time Offset does not get me the end of the month

Question:

I have a time series dataframe at the monthly level where each month is denoted as the last day of the month. I need to loop through the dataframe one step at a time to get forecast from different time periods.

I tried the following:

import pandas as pd
from pandas.tseries.offsets import DateOffset

times = np.arange(1,24)
    for time in times:
    date_min = pd.to_datetime("2020-11-30")
    offset_ = int(time)
    filter_ = date_min + DateOffset(months = int)
    df_ = df[(df['dmand_yr_mo'] <= filter_)]

This runs error-free. However, when going from November to December, the date ends up being 2020-12-30 instead of 2020-12-31. Using this method cuts off the day.

Is there a better way to achieve what I want without cutting off days?

Asked By: JordanBH

||

Answers:

Instead of DateOffset, you can use MonthEnd:

>>> date_min + pd.offsets.MonthEnd(1)
Timestamp('2020-12-31 00:00:00')
Answered By: Corralien
Categories: questions Tags: , ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.