I think the way you implement it through lambda slows it down. Consider this method (taken more or less directly from documentaion )
from pandas.tseries.offsets import CustomBusinessDay bday_us = CustomBusinessDay(calendar=USFederalHolidayCalendar()) mydate + bday_us Out[13]: Timestamp('2014-12-26 00:00:00')
The first part is slow, but you only need to do it once. The second part is very fast, though.
%timeit bday_us = CustomBusinessDay(calendar=USFederalHolidayCalendar()) 10 loops, best of 3: 66.5 ms per loop %timeit mydate + bday_us 10000 loops, best of 3: 44 ยตs per loop
To get apples for apples, here are other timings on my machine:
%timeit with_holiday = mydate + bday_offset(1) 10 loops, best of 3: 23.1 ms per loop %timeit without_holiday = mydate + pd.datetools.offsets.BDay(1) 10000 loops, best of 3: 36.6 ยตs per loop
source share