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):
`