-
-
Notifications
You must be signed in to change notification settings - Fork 19.4k
Closed
Labels
InternalsRelated to non-user accessible pandas implementationRelated to non-user accessible pandas implementation
Description
Trying to simplify some things in internals. I expected that it would always be the case that len(block) == block.shape[0], but shape is flipped in a few cases.
class Block:
def __len__(self):
return len(self.values)
@property
def shape(self):
return self.values.shape
class NonConsolidatableMixin:
@property
def shape(self):
if self.ndim == 1:
return (len(self.values)),
return (len(self.mgr_locs), len(self.values))
class SparseBlock:
@property
def shape(self):
return (len(self.mgr_locs), self.sp_index.length)
def __len__(self):
try:
return self.sp_index.length
except AttributeError:
return 0
So for Block len(b) == b.shape[0], 1-dim NonConsolidatable (and ScalarBlock) behave as expected, but 2-dim have len(b) == b.shape[1]. Ditto SparseBlock (a try/except notwithstanding).
What's the internal logic here?
Metadata
Metadata
Assignees
Labels
InternalsRelated to non-user accessible pandas implementationRelated to non-user accessible pandas implementation