Skip to content

Commit 239a4f4

Browse files
committed
BUG: Spurious IncompatibleFrequency error prevented plotting of non-standard intervals (Fixes pandas-dev#14763)
1 parent 4d3ca3a commit 239a4f4

File tree

2 files changed

+11
-4
lines changed

2 files changed

+11
-4
lines changed

pandas/src/period.pyx

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -468,7 +468,8 @@ def extract_ordinals(ndarray[object] values, freq):
468468
ndarray[int64_t] ordinals = np.empty(n, dtype=np.int64)
469469
object p
470470

471-
rule_code = Period._maybe_convert_freq(freq).rule_code
471+
freqstr = Period._maybe_convert_freq(freq).freqstr
472+
base_freq = frequencies.get_base_alias(freqstr)
472473

473474
for i in range(n):
474475
p = values[i]
@@ -478,9 +479,10 @@ def extract_ordinals(ndarray[object] values, freq):
478479
else:
479480
try:
480481
ordinals[i] = p.ordinal
481-
ordinal_rule_code = Period._maybe_convert_freq(p.freq).rule_code
482-
if ordinal_rule_code != rule_code:
483-
msg = _DIFFERENT_FREQ_INDEX.format(ordinal_rule_code, rule_code)
482+
483+
p_base_freq = frequencies.get_base_alias(p.freqstr)
484+
if p_base_freq != base_freq:
485+
msg = _DIFFERENT_FREQ_INDEX.format(base_freq, p_base_freq)
484486
raise IncompatibleFrequency(msg)
485487

486488
except AttributeError:

pandas/tests/plotting/test_series.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -802,6 +802,11 @@ def test_custom_business_day_freq(self):
802802

803803
_check_plot_works(s.plot)
804804

805+
def test_non_standard_intervals(self):
806+
idx = pd.period_range('2000-01-01', '2000-01-05', freq='6H')
807+
s = Series(np.random.randn(len(idx)), index=idx)
808+
ax = _check_plot_works(s.plot)
809+
805810

806811
if __name__ == '__main__':
807812
nose.runmodule(argv=[__file__, '-vvs', '-x', '--pdb', '--pdb-failure'],

0 commit comments

Comments
 (0)