Skip to content

Commit deca8a4

Browse files
committed
cleaner way to get ndarray from DTI and fix failing pytables tests
1 parent 36ccf8e commit deca8a4

File tree

3 files changed

+6
-4
lines changed

3 files changed

+6
-4
lines changed

pandas/core/indexes/base.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -506,9 +506,9 @@ def _shallow_copy(self, values=None, **kwargs):
506506
attributes.update(kwargs)
507507
if not len(values) and 'dtype' not in kwargs:
508508
attributes['dtype'] = self.dtype
509-
from pandas import DatetimeIndex
510-
if isinstance(values, DatetimeIndex):
511-
values = values.values
509+
510+
# _simple_new expects an ndarray
511+
values = getattr(values, 'values', values)
512512
return self._simple_new(values, **attributes)
513513

514514
def _shallow_copy_with_infer(self, values=None, **kwargs):

pandas/core/indexes/datetimes.py

+1
Original file line numberDiff line numberDiff line change
@@ -611,6 +611,7 @@ def _simple_new(cls, values, name=None, freq=None, tz=None,
611611
dtype=dtype, **kwargs)
612612
values = np.array(values, copy=False)
613613

614+
# values should be a numpy array
614615
assert isinstance(values, np.ndarray)
615616

616617
if is_object_dtype(values):

pandas/io/pytables.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -2474,7 +2474,8 @@ def _get_index_factory(self, klass):
24742474
if klass == DatetimeIndex:
24752475
def f(values, freq=None, tz=None):
24762476
# data are already in UTC, localize and convert if tz present
2477-
result = DatetimeIndex._simple_new(values, None, freq=freq)
2477+
result = DatetimeIndex._simple_new(values.values, None,
2478+
freq=freq)
24782479
if tz is not None:
24792480
result = result.tz_localize('UTC').tz_convert(tz)
24802481
return result

0 commit comments

Comments
 (0)