Skip to content

Commit 5382985

Browse files
committed
BUG: critical DatetimeIndex.union bug with different frequency indexes close #1730
1 parent 0fca796 commit 5382985

File tree

3 files changed

+10
-1
lines changed

3 files changed

+10
-1
lines changed

RELEASE.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ pandas 0.8.2
3838

3939
**Bug fixes**
4040

41+
- Fix critical DatetimeIndex.union bug (#1730)
4142
- Fix MM-YYYY time series indexing case (#1672)
4243
- Fix case where Categorical group key was not being passed into index in
4344
GroupBy result (#1701)

pandas/tseries/index.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -750,7 +750,7 @@ def _can_fast_union(self, other):
750750

751751
offset = self.offset
752752

753-
if offset is None:
753+
if offset is None or offset != other.offset:
754754
return False
755755

756756
if not self.is_monotonic or not other.is_monotonic:

pandas/tseries/tests/test_timeseries.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1153,6 +1153,14 @@ def test_union_coverage(self):
11531153
self.assert_(result.equals(ordered))
11541154
self.assert_(result.freq == ordered.freq)
11551155

1156+
def test_union_bug_1730(self):
1157+
rng_a = date_range('1/1/2012', periods=4, freq='3H')
1158+
rng_b = date_range('1/1/2012', periods=4, freq='4H')
1159+
1160+
result = rng_a.union(rng_b)
1161+
exp = DatetimeIndex(sorted(set(list(rng_a)) | set(list(rng_b))))
1162+
self.assert_(result.equals(exp))
1163+
11561164
# def test_add_timedelta64(self):
11571165
# rng = date_range('1/1/2000', periods=5)
11581166
# delta = rng.values[3] - rng.values[1]

0 commit comments

Comments
 (0)