sidestep int sign/size astype issues · pandas-dev/pandas@04efd45 (original) (raw)

`@@ -557,17 +557,10 @@ def astype(self, dtype, copy=True):

`

557

557

``

558

558

`new_values = self._eadata.astype(dtype, copy=copy)

`

559

559

``

560

``

`` -

we pass dtype to the Index constructor, for cases like

``

561

``

`-

dtype=object to disable inference. But, DTA.astype ignores

`

562

``

`-

integer sign and size, so we need to detect that case and

`

563

``

`-

just choose int64.

`

564

``

`-

dtype = pandas_dtype(dtype)

`

565

``

`-

if is_integer_dtype(dtype):

`

566

``

`-

dtype = np.dtype("int64")

`

567

``

-

568

560

`# pass copy=False because any copying will be done in the

`

569

561

`# _eadata.astype call above

`

570

``

`-

return Index(new_values, dtype=dtype, name=self.name, copy=False)

`

``

562

`+

return Index(new_values,

`

``

563

`+

dtype=new_values.dtype, name=self.name, copy=False)

`

571

564

``

572

565

`@Appender(DatetimeLikeArrayMixin._time_shift.doc)

`

573

566

`def _time_shift(self, periods, freq=None):

`