def get_date_ranges(self, fr_date, to_date):
qtr_beg = pd.date_range(start=fr_date, end=datetime.date.today(), freq='QS')
qtr_end = pd.date_range(start=fr_date, end=datetime.date.today(), freq='Q')
date_range = zip(qtr_beg, qtr_end)
return date_range
import pandas as pd
def get_date_ranges(fr_date, to_date):
qrange=pd.period_range(start=fr_date,end=to_date,freq='Q')
qtr_beg = qrange.asfreq('D','s')
qtr_end = qrange.asfreq('D','e')
date_range = zip(qtr_beg, qtr_end)
return date_range
for x in get_date_ranges('2018-02-01','2020-06-30'):
print(x)
which delivers:
(Period('2018-01-01', 'D'), Period('2018-03-31', 'D'))
(Period('2018-04-01', 'D'), Period('2018-06-30', 'D'))
(Period('2018-07-01', 'D'), Period('2018-09-30', 'D'))
(Period('2018-10-01', 'D'), Period('2018-12-31', 'D'))
(Period('2019-01-01', 'D'), Period('2019-03-31', 'D'))
(Period('2019-04-01', 'D'), Period('2019-06-30', 'D'))
(Period('2019-07-01', 'D'), Period('2019-09-30', 'D'))
(Period('2019-10-01', 'D'), Period('2019-12-31', 'D'))
(Period('2020-01-01', 'D'), Period('2020-03-31', 'D'))
(Period('2020-04-01', 'D'), Period('2020-06-30', 'D'))
The input arrays are the dates generated from period_range and from there the first (qtr_beg) & last (qtr_end) are derived.
The zip function (python built-in) creates pair of numbers from two input arrays (qtr_beg, qtr_end)
Try this:
Open in new window