Skip to content

Commit b0cc8b0

Browse files
committed
BUG: DateTimeIndex.append broken with tz-aware indices
1 parent acc3f40 commit b0cc8b0

File tree

2 files changed

+32
-8
lines changed

2 files changed

+32
-8
lines changed

pandas/tseries/index.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1731,7 +1731,8 @@ def _process_concat_data(to_concat, name):
17311731
else:
17321732
to_concat = [x.values for x in to_concat]
17331733

1734-
klass = DatetimeIndex
1734+
# well, technically not a "class" anymore...oh well
1735+
klass = DatetimeIndex._simple_new
17351736
kwargs = {'tz': tz}
17361737
concat = com._concat_compat
17371738
else:

pandas/tseries/tests/test_timeseries.py

Lines changed: 30 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,13 @@
4242
from numpy.testing.decorators import slow
4343

4444

45+
def _skip_if_no_pytz():
46+
try:
47+
import pytz
48+
except ImportError:
49+
raise nose.SkipTest
50+
51+
4552
class TestTimeSeriesDuplicates(unittest.TestCase):
4653
_multiprocess_can_split_ = True
4754

@@ -168,13 +175,6 @@ def assert_range_equal(left, right):
168175
assert(left.tz == right.tz)
169176

170177

171-
def _skip_if_no_pytz():
172-
try:
173-
import pytz
174-
except ImportError:
175-
raise nose.SkipTest
176-
177-
178178
class TestTimeSeries(unittest.TestCase):
179179
_multiprocess_can_split_ = True
180180

@@ -1265,6 +1265,29 @@ def test_append_concat(self):
12651265
self.assert_(rng1.append(rng1).name == 'foo')
12661266
self.assert_(rng1.append(rng2).name is None)
12671267

1268+
def test_append_concat_tz(self):
1269+
#GH 2938
1270+
_skip_if_no_pytz()
1271+
1272+
rng = date_range('5/8/2012 1:45', periods=10, freq='5T',
1273+
tz='US/Eastern')
1274+
rng2 = date_range('5/8/2012 2:35', periods=10, freq='5T',
1275+
tz='US/Eastern')
1276+
rng3 = date_range('5/8/2012 1:45', periods=20, freq='5T',
1277+
tz='US/Eastern')
1278+
ts = Series(np.random.randn(len(rng)), rng)
1279+
df = DataFrame(np.random.randn(len(rng), 4), index=rng)
1280+
ts2 = Series(np.random.randn(len(rng2)), rng2)
1281+
df2 = DataFrame(np.random.randn(len(rng2), 4), index=rng2)
1282+
1283+
result = ts.append(ts2)
1284+
result_df = df.append(df2)
1285+
self.assert_(result.index.equals(rng3))
1286+
self.assert_(result_df.index.equals(rng3))
1287+
1288+
appended = rng.append(rng2)
1289+
self.assert_(appended.equals(rng3))
1290+
12681291
def test_set_dataframe_column_ns_dtype(self):
12691292
x = DataFrame([datetime.now(), datetime.now()])
12701293
self.assert_(x[0].dtype == np.dtype('M8[ns]'))

0 commit comments

Comments
 (0)