Skip to content

Commit 2b322d2

Browse files
committed
REF: BlockManager.delete -> idelete (pandas-dev#33332)
1 parent c57f6e7 commit 2b322d2

File tree

2 files changed

+8
-10
lines changed

2 files changed

+8
-10
lines changed

pandas/core/generic.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -3713,7 +3713,8 @@ def __delitem__(self, key) -> None:
37133713
# If the above loop ran and didn't delete anything because
37143714
# there was no match, this call should raise the appropriate
37153715
# exception:
3716-
self._mgr.delete(key)
3716+
loc = self.axes[-1].get_loc(key)
3717+
self._mgr.idelete(loc)
37173718

37183719
# delete from the caches
37193720
try:

pandas/core/internals/managers.py

+6-9
Original file line numberDiff line numberDiff line change
@@ -1007,12 +1007,10 @@ def iget(self, i: int) -> "SingleBlockManager":
10071007
self.axes[1],
10081008
)
10091009

1010-
def delete(self, item):
1010+
def idelete(self, indexer):
10111011
"""
1012-
Delete selected item (items if non-unique) in-place.
1012+
Delete selected locations in-place (new block and array, same BlockManager)
10131013
"""
1014-
indexer = self.items.get_loc(item)
1015-
10161014
is_deleted = np.zeros(self.shape[0], dtype=np.bool_)
10171015
is_deleted[indexer] = True
10181016
ref_loc_offset = -is_deleted.cumsum()
@@ -1606,15 +1604,14 @@ def _consolidate_check(self):
16061604
def _consolidate_inplace(self):
16071605
pass
16081606

1609-
def delete(self, item):
1607+
def idelete(self, indexer):
16101608
"""
1611-
Delete single item from SingleBlockManager.
1609+
Delete single location from SingleBlockManager.
16121610
16131611
Ensures that self.blocks doesn't become empty.
16141612
"""
1615-
loc = self.items.get_loc(item)
1616-
self._block.delete(loc)
1617-
self.axes[0] = self.axes[0].delete(loc)
1613+
self._block.delete(indexer)
1614+
self.axes[0] = self.axes[0].delete(indexer)
16181615

16191616
def fast_xs(self, loc):
16201617
"""

0 commit comments

Comments
 (0)