从头开始创建交易日历可能更直接,例如:
import datetime as dtfrom pandas.tseries.holiday import AbstractHolidayCalendar, Holiday, nearest_workday, USMartinLutherKingJr, USPresidentsDay, GoodFriday, USMemorialDay, USLaborDay, USThanksgivingDayclass USTradingCalendar(AbstractHolidayCalendar): rules = [ Holiday('NewYearsDay', month=1, day=1, observance=nearest_workday), USMartinLutherKingJr, USPresidentsDay, GoodFriday, USMemorialDay, Holiday('USIndependenceDay', month=7, day=4, observance=nearest_workday), USLaborDay, USThanksgivingDay, Holiday('Christmas', month=12, day=25, observance=nearest_workday) ]def get_trading_close_holidays(year): inst = USTradingCalendar() return inst.holidays(dt.datetime(year-1, 12, 31), dt.datetime(year, 12, 31))if __name__ == '__main__': print(get_trading_close_holidays(2016)) # DatetimeIndex(['2016-01-01', '2016-01-18', '2016-02-15', '2016-03-25', # '2016-05-30', '2016-07-04', '2016-09-05', '2016-11-24', # '2016-12-26'], # dtype='datetime64[ns]', freq=None)


