|
15 | 15 | from pandas.util._validators import validate_bool_kwarg
|
16 | 16 |
|
17 | 17 | from pandas.core.dtypes.common import (
|
18 |
| - is_datetime64tz_dtype, is_datetimelike, is_extension_array_dtype, |
19 |
| - is_extension_type, is_list_like, is_object_dtype, is_scalar) |
20 |
| -from pandas.core.dtypes.generic import ( |
21 |
| - ABCDataFrame, ABCDatetimeArray, ABCIndexClass, ABCSeries, |
22 |
| - ABCTimedeltaArray) |
| 18 | + is_datetime64_ns_dtype, is_datetime64tz_dtype, is_datetimelike, |
| 19 | + is_extension_array_dtype, is_extension_type, is_list_like, is_object_dtype, |
| 20 | + is_scalar, is_timedelta64_ns_dtype) |
| 21 | +from pandas.core.dtypes.generic import ABCDataFrame, ABCIndexClass, ABCSeries |
23 | 22 | from pandas.core.dtypes.missing import isna
|
24 | 23 |
|
25 | 24 | from pandas.core import algorithms, common as com
|
@@ -851,16 +850,17 @@ def array(self):
|
851 | 850 | """
|
852 | 851 | result = self._values
|
853 | 852 |
|
854 |
| - if not (is_extension_array_dtype(result.dtype) |
855 |
| - or isinstance(result, (ABCDatetimeArray, ABCTimedeltaArray))): |
856 |
| - # TODO: Should this be a DatetimeArray or PandasArray |
857 |
| - # for tz-naive data? |
858 |
| - # DatetimeArray is a bit strange, since tz-naive |
859 |
| - # arrays are an ExtensionArray, but the dtype is not |
860 |
| - # an extension dtype. |
861 |
| - from pandas.core.arrays.numpy_ import PandasArray |
| 853 | + if is_datetime64_ns_dtype(result.dtype): |
| 854 | + from pandas.arrays import DatetimeArray |
| 855 | + result = DatetimeArray(result) |
| 856 | + elif is_timedelta64_ns_dtype(result.dtype): |
| 857 | + from pandas.arrays import TimedeltaArray |
| 858 | + result = TimedeltaArray(result) |
862 | 859 |
|
| 860 | + elif not is_extension_array_dtype(result.dtype): |
| 861 | + from pandas.arrays import PandasArray |
863 | 862 | result = PandasArray(result)
|
| 863 | + |
864 | 864 | return result
|
865 | 865 |
|
866 | 866 | def to_numpy(self, dtype=None, copy=False):
|
|
0 commit comments