我认为你可以通过以下来得到你想要的。
freq='BMS' # 营业月开始
或
freq='BQS' # 业务季度开始
更新:
你可以做这样的事情来照顾一个月/季度开始的假期。
from pandas import DatetimeIndex
from pandas.tseries.holiday import USFederalHolidayCalendar
holidays = USFederalHolidayCalendar().holidays(start, end, return_name=False)
month_dates = pandas.bdate_range(start, end, freq='CBMS', holidays=[holiday for holiday in holidays])
print(month_dates)
print(DatetimeIndex([e[1] for e in zip(month_dates.month, month_dates) if e[0] in {1, 4, 7, 10}]))
DatetimeIndex(['2015-01-02', '2015-02-02', '2015-03-02', '2015-04-01',
'2015-05-01', '2015-06-01', '2015-07-01', '2015-08-03',
'2015-09-01', '2015-10-01', '2015-11-02', '2015-12-01',
'2016-01-04', '2016-02-01', '2016-03-01', '2016-04-01',
'2016-05-02', '2016-06-01', '2016-07-01', '2016-08-01',
'2016-09-01', '2016-10-03', '2016-11-01', '2016-12-01',
'2017-01-03', '2017-02-01', '2017-03-01', '2017-04-03',
'2017-05-01', '2017-06-01', '2017-07-03', '2017-08-01',
'2017-09-01', '2017-10-02', '2017-11-01', '2017-12-01',
'2018-01-02', '2018-02-01', '2018-03-01', '2018-04-02',
'2018-05-01', '2018-06-01', '2018-07-02', '2018-08-01',
'2018-09-04', '2018-10-01', '2018-11-01', '2018-12-03',
'2019-01-02', '2019-02-01', '2019-03-01', '2019-04-01',
'2019-05-01'],
dtype='datetime64[ns]', freq='CBMS')
DatetimeIndex(['2015-01-02', '2015-04-01', '2015-07-01', '2015-10-01',
'2016-01-04', '2016-04-01', '2016-07-01', '2016-10-03',
'2017-01-03', '2017-04-03', '2017-07-03', '2017-10-02',
'2018-01-02', '2018-04-02', '2018-07-02', '2018-10-01',
'2019-01-02', '2019-04-01'],
dtype='datetime64[ns]', freq=None)