@@ -260,7 +260,7 @@ def make_block(self, values, placement=None) -> Block:
260
260
not specified
261
261
"""
262
262
if placement is None :
263
- placement = self .mgr_locs
263
+ placement = self ._mgr_locs
264
264
if self .is_extension :
265
265
values = ensure_block_shape (values , ndim = self .ndim )
266
266
@@ -272,8 +272,7 @@ def make_block(self, values, placement=None) -> Block:
272
272
def make_block_same_class (self , values , placement = None ) -> Block :
273
273
""" Wrap given values in a block of same type as self. """
274
274
if placement is None :
275
- placement = self .mgr_locs
276
- # TODO: perf by not going through new_block
275
+ placement = self ._mgr_locs
277
276
# We assume maybe_coerce_values has already been called
278
277
return type (self )(values , placement = placement , ndim = self .ndim )
279
278
@@ -318,7 +317,7 @@ def getitem_block(self, slicer, new_mgr_locs=None) -> Block:
318
317
"""
319
318
if new_mgr_locs is None :
320
319
axis0_slicer = slicer [0 ] if isinstance (slicer , tuple ) else slicer
321
- new_mgr_locs = self .mgr_locs [axis0_slicer ]
320
+ new_mgr_locs = self ._mgr_locs [axis0_slicer ]
322
321
elif not isinstance (new_mgr_locs , BlockPlacement ):
323
322
new_mgr_locs = BlockPlacement (new_mgr_locs )
324
323
@@ -358,7 +357,7 @@ def delete(self, loc) -> None:
358
357
Delete given loc(-s) from block in-place.
359
358
"""
360
359
self .values = np .delete (self .values , loc , 0 )
361
- self .mgr_locs = self .mgr_locs .delete (loc )
360
+ self .mgr_locs = self ._mgr_locs .delete (loc )
362
361
363
362
@final
364
363
def apply (self , func , ** kwargs ) -> List [Block ]:
@@ -399,7 +398,7 @@ def _split_op_result(self, result) -> List[Block]:
399
398
# TODO(EA2D): unnecessary with 2D EAs
400
399
# if we get a 2D ExtensionArray, we need to split it into 1D pieces
401
400
nbs = []
402
- for i , loc in enumerate (self .mgr_locs ):
401
+ for i , loc in enumerate (self ._mgr_locs ):
403
402
vals = result [i ]
404
403
block = self .make_block (values = vals , placement = loc )
405
404
nbs .append (block )
@@ -462,7 +461,7 @@ def _split(self) -> List[Block]:
462
461
assert self .ndim == 2
463
462
464
463
new_blocks = []
465
- for i , ref_loc in enumerate (self .mgr_locs ):
464
+ for i , ref_loc in enumerate (self ._mgr_locs ):
466
465
vals = self .values [slice (i , i + 1 )]
467
466
468
467
nb = self .make_block (vals , BlockPlacement (ref_loc ))
@@ -512,12 +511,12 @@ def make_a_block(nv, ref_loc):
512
511
nv = f (mask , new_values , None )
513
512
else :
514
513
nv = new_values if inplace else new_values .copy ()
515
- block = make_a_block (nv , self .mgr_locs )
514
+ block = make_a_block (nv , self ._mgr_locs )
516
515
return [block ]
517
516
518
517
# ndim > 1
519
518
new_blocks = []
520
- for i , ref_loc in enumerate (self .mgr_locs ):
519
+ for i , ref_loc in enumerate (self ._mgr_locs ):
521
520
m = mask [i ]
522
521
v = new_values [i ]
523
522
@@ -1254,7 +1253,7 @@ def take_nd(
1254
1253
# this assertion
1255
1254
assert not (axis == 0 and new_mgr_locs is None )
1256
1255
if new_mgr_locs is None :
1257
- new_mgr_locs = self .mgr_locs
1256
+ new_mgr_locs = self ._mgr_locs
1258
1257
1259
1258
if not is_dtype_equal (new_values .dtype , self .dtype ):
1260
1259
return self .make_block (new_values , new_mgr_locs )
@@ -1362,7 +1361,7 @@ def where(self, other, cond, errors="raise", axis: int = 0) -> List[Block]:
1362
1361
result = cast (np .ndarray , result ) # EABlock overrides where
1363
1362
taken = result .take (m .nonzero ()[0 ], axis = axis )
1364
1363
r = maybe_downcast_numeric (taken , self .dtype )
1365
- nb = self .make_block (r .T , placement = self .mgr_locs [m ])
1364
+ nb = self .make_block (r .T , placement = self ._mgr_locs [m ])
1366
1365
result_blocks .append (nb )
1367
1366
1368
1367
return result_blocks
@@ -1423,7 +1422,7 @@ def quantile(
1423
1422
1424
1423
result = quantile_compat (self .values , qs , interpolation , axis )
1425
1424
1426
- return new_block (result , placement = self .mgr_locs , ndim = 2 )
1425
+ return new_block (result , placement = self ._mgr_locs , ndim = 2 )
1427
1426
1428
1427
1429
1428
class ExtensionBlock (Block ):
@@ -1449,7 +1448,7 @@ def shape(self) -> Shape:
1449
1448
# TODO(EA2D): override unnecessary with 2D EAs
1450
1449
if self .ndim == 1 :
1451
1450
return (len (self .values ),)
1452
- return len (self .mgr_locs ), len (self .values )
1451
+ return len (self ._mgr_locs ), len (self .values )
1453
1452
1454
1453
def iget (self , col ):
1455
1454
@@ -1594,7 +1593,7 @@ def take_nd(
1594
1593
# this assertion
1595
1594
assert not (self .ndim == 1 and new_mgr_locs is None )
1596
1595
if new_mgr_locs is None :
1597
- new_mgr_locs = self .mgr_locs
1596
+ new_mgr_locs = self ._mgr_locs
1598
1597
1599
1598
return self .make_block_same_class (new_values , new_mgr_locs )
1600
1599
@@ -1630,7 +1629,7 @@ def _slice(self, slicer):
1630
1629
)
1631
1630
# GH#32959 only full-slicers along fake-dim0 are valid
1632
1631
# TODO(EA2D): won't be necessary with 2D EAs
1633
- new_locs = self .mgr_locs [first ]
1632
+ new_locs = self ._mgr_locs [first ]
1634
1633
if len (new_locs ):
1635
1634
# effectively slice(None)
1636
1635
slicer = slicer [1 ]
@@ -1741,9 +1740,10 @@ def _unstack(self, unstacker, fill_value, new_placement):
1741
1740
# TODO: in all tests we have mask.all(); can we rely on that?
1742
1741
1743
1742
blocks = [
1743
+ # TODO: could cast to object depending on fill_value?
1744
1744
self .make_block_same_class (
1745
1745
self .values .take (indices , allow_fill = True , fill_value = fill_value ),
1746
- [ place ] ,
1746
+ BlockPlacement ( place ) ,
1747
1747
)
1748
1748
for indices , place in zip (new_values .T , new_placement )
1749
1749
]
0 commit comments