Skip to content

Commit 6e5d2b8

Browse files
committed
BUG: verify inferred B freq pandas-dev#1668 pandas-dev#1669
1 parent c47a426 commit 6e5d2b8

File tree

3 files changed

+31
-2
lines changed

3 files changed

+31
-2
lines changed

pandas/tools/plotting.py

+7-2
Original file line numberDiff line numberDiff line change
@@ -828,8 +828,13 @@ def __init__(self, data, **kwargs):
828828
def _index_freq(self):
829829
from pandas.core.frame import DataFrame
830830
if isinstance(self.data, (Series, DataFrame)):
831-
freq = (getattr(self.data.index, 'freq', None)
832-
or getattr(self.data.index, 'inferred_freq', None))
831+
freq = getattr(self.data.index, 'freq', None)
832+
if freq is None:
833+
freq = getattr(self.data.index, 'inferred_freq', None)
834+
if freq == 'B':
835+
weekdays = np.unique(self.data.index.dayofweek)
836+
if (5 in weekdays) or (6 in weekdays):
837+
freq = None
833838
return freq
834839

835840
def _is_dynamic_freq(self, freq):

pandas/tseries/tests/test_plotting.py

+12
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,18 @@ def test_line_plot_inferred_freq(self):
136136
ser = ser[[0, 3, 5, 6]]
137137
_check_plot_works(ser.plot)
138138

139+
@slow
140+
def test_fake_inferred_business(self):
141+
import matplotlib.pyplot as plt
142+
fig = plt.gcf()
143+
plt.clf()
144+
fig.add_subplot(111)
145+
rng = date_range('2001-1-1', '2001-1-10')
146+
ts = Series(range(len(rng)), rng)
147+
ts = ts[:3].append(ts[5:])
148+
ax = ts.plot()
149+
self.assert_(not hasattr(ax, 'freq'))
150+
139151
@slow
140152
def test_plot_offset_freq(self):
141153
ser = tm.makeTimeSeries()

vb_suite/timeseries.py

+12
Original file line numberDiff line numberDiff line change
@@ -144,3 +144,15 @@ def date_range(start=None, end=None, periods=None, freq=None):
144144
timeseries_to_datetime_iso8601 = \
145145
Benchmark('to_datetime(strings)', setup,
146146
start_date=datetime(2012, 7, 11))
147+
148+
# ---- infer_freq
149+
# infer_freq
150+
151+
setup = common_setup + """
152+
from pandas.tseries.frequencies import infer_freq
153+
rng = date_range('1/1/1700', freq='D', periods=100000)
154+
a = rng[:50000].append(rng[50002:])
155+
"""
156+
157+
timeseries_infer_freq = \
158+
Benchmark('infer_freq(a)', setup, start_date=datetime(2012, 7, 1))

0 commit comments

Comments
 (0)