Skip to content

Commit d932752

Browse files
authored
REF: consolidate NDFrame._iset_item, _set_item with DataFrame methods (pandas-dev#38389)
1 parent 2ff1370 commit d932752

File tree

2 files changed

+15
-18
lines changed

2 files changed

+15
-18
lines changed

pandas/core/frame.py

+15-4
Original file line numberDiff line numberDiff line change
@@ -3211,12 +3211,16 @@ def _setitem_frame(self, key, value):
32113211
self._check_setitem_copy()
32123212
self._where(-key, value, inplace=True)
32133213

3214-
def _iset_item(self, loc: int, value):
3214+
def _iset_item_mgr(self, loc: int, value) -> None:
3215+
self._mgr.iset(loc, value)
3216+
self._clear_item_cache()
3217+
3218+
def _iset_item(self, loc: int, value, broadcast: bool = False):
32153219

32163220
# technically _sanitize_column expects a label, not a position,
32173221
# but the behavior is the same as long as we pass broadcast=False
3218-
value = self._sanitize_column(loc, value, broadcast=False)
3219-
NDFrame._iset_item(self, loc, value)
3222+
value = self._sanitize_column(loc, value, broadcast=broadcast)
3223+
self._iset_item_mgr(loc, value)
32203224

32213225
# check if we are modifying a copy
32223226
# try to set first as we want an invalid
@@ -3235,7 +3239,14 @@ def _set_item(self, key, value):
32353239
ensure homogeneity.
32363240
"""
32373241
value = self._sanitize_column(key, value)
3238-
NDFrame._set_item(self, key, value)
3242+
3243+
try:
3244+
loc = self._info_axis.get_loc(key)
3245+
except KeyError:
3246+
# This item wasn't present, just insert at end
3247+
self._mgr.insert(len(self._info_axis), key, value)
3248+
else:
3249+
self._iset_item_mgr(loc, value)
32393250

32403251
# check if we are modifying a copy
32413252
# try to set first as we want an invalid

pandas/core/generic.py

-14
Original file line numberDiff line numberDiff line change
@@ -3814,20 +3814,6 @@ def _slice(self: FrameOrSeries, slobj: slice, axis=0) -> FrameOrSeries:
38143814
result._set_is_copy(self, copy=is_copy)
38153815
return result
38163816

3817-
def _iset_item(self, loc: int, value) -> None:
3818-
self._mgr.iset(loc, value)
3819-
self._clear_item_cache()
3820-
3821-
def _set_item(self, key, value) -> None:
3822-
try:
3823-
loc = self._info_axis.get_loc(key)
3824-
except KeyError:
3825-
# This item wasn't present, just insert at end
3826-
self._mgr.insert(len(self._info_axis), key, value)
3827-
return
3828-
3829-
NDFrame._iset_item(self, loc, value)
3830-
38313817
@final
38323818
def _set_is_copy(self, ref, copy: bool_t = True) -> None:
38333819
if not copy:

0 commit comments

Comments
 (0)