PERF: Implement date_range for business day in terms of daily #16463
Open
Description
Code Sample, a copy-pastable example if possible
@dsm054 noticed that business day performance is slow relative to daily
These two are equivalent
In [23]: %timeit pd.date_range("1956-01-31", "2017-05-16", freq="B")
278 ms ± 4.76 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
In [24]: %timeit i2 = pd.date_range("1956-01-31", "2017-05-16", freq="D"); i2=i2[i2.dayofweek < 5]
1.44 ms ± 39.9 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)
If we do these, we'll have to special case the handling when periods
is passed to expand it by enough weekends. But that's a pretty nice performance boost for a pretty common operation.