@@ -1814,6 +1814,11 @@ def __init__(self, values, placement, ndim=None):
1814
1814
self ._holder = type (values )
1815
1815
super (ExtensionBlock , self ).__init__ (values , placement , ndim = ndim )
1816
1816
1817
+ @property
1818
+ def is_view (self ):
1819
+ """Extension arrays are never treated as views."""
1820
+ return False
1821
+
1817
1822
def get_values (self , dtype = None ):
1818
1823
# ExtensionArrays must be iterable, so this works.
1819
1824
values = np .asarray (self .values )
@@ -1822,7 +1827,7 @@ def get_values(self, dtype=None):
1822
1827
return values
1823
1828
1824
1829
def to_dense (self ):
1825
- return self .values . get_values ( )
1830
+ return np . asarray ( self .values )
1826
1831
1827
1832
def take_nd (self , indexer , axis = 0 , new_mgr_locs = None , fill_tuple = None ):
1828
1833
"""
@@ -2412,12 +2417,6 @@ def __init__(self, values, placement, ndim=None):
2412
2417
super (CategoricalBlock , self ).__init__ (_maybe_to_categorical (values ),
2413
2418
placement = placement ,
2414
2419
ndim = ndim )
2415
-
2416
- @property
2417
- def is_view (self ):
2418
- """ I am never a view """
2419
- return False
2420
-
2421
2420
@property
2422
2421
def array_dtype (self ):
2423
2422
""" the dtype to return if I want to construct this block as an
@@ -2461,6 +2460,12 @@ def shift(self, periods, axis=0, mgr=None):
2461
2460
return self .make_block_same_class (values = self .values .shift (periods ),
2462
2461
placement = self .mgr_locs )
2463
2462
2463
+ def to_dense (self ):
2464
+ # Categorical.get_values returns a DatetimeIndex for datetime
2465
+ # categories, so we can't simply use `np.asarray(self.values)` like
2466
+ # other types.
2467
+ return self .values .get_values ()
2468
+
2464
2469
def to_native_types (self , slicer = None , na_rep = '' , quoting = None , ** kwargs ):
2465
2470
""" convert to our native types format, slicing if desired """
2466
2471
0 commit comments