diff --git a/pandas/core/frame.py b/pandas/core/frame.py index 66d3800301f92..24517149f511a 100644 --- a/pandas/core/frame.py +++ b/pandas/core/frame.py @@ -3914,9 +3914,9 @@ def _set_item_mgr(self, key, value: ArrayLike) -> None: if len(self): self._check_setitem_copy() - def _iset_item(self, loc: int, value, inplace: bool = False) -> None: + def _iset_item(self, loc: int, value) -> None: arraylike = self._sanitize_column(value) - self._iset_item_mgr(loc, arraylike, inplace=inplace) + self._iset_item_mgr(loc, arraylike, inplace=True) # check if we are modifying a copy # try to set first as we want an invalid diff --git a/pandas/core/indexing.py b/pandas/core/indexing.py index b2e2bb0642c41..fc2204724aceb 100644 --- a/pandas/core/indexing.py +++ b/pandas/core/indexing.py @@ -1871,11 +1871,11 @@ def _setitem_single_column(self, loc: int, value, plane_indexer): # The setitem happened inplace, so the DataFrame's values # were modified inplace. return - self.obj._iset_item(loc, ser, inplace=True) + self.obj._iset_item(loc, ser) return # reset the sliced object if unique - self.obj._iset_item(loc, ser, inplace=True) + self.obj._iset_item(loc, ser) def _setitem_single_block(self, indexer, value, name: str): """ @@ -1892,19 +1892,15 @@ def _setitem_single_block(self, indexer, value, name: str): # set using those methods to avoid block-splitting # logic here if ( - len(indexer) > info_axis - and is_integer(indexer[info_axis]) - and all( - com.is_null_slice(idx) - for i, idx in enumerate(indexer) - if i != info_axis - ) + self.ndim == len(indexer) == 2 + and is_integer(indexer[1]) + and com.is_null_slice(indexer[0]) ): col = item_labels[indexer[info_axis]] if len(item_labels.get_indexer_for([col])) == 1: # e.g. test_loc_setitem_empty_append_expands_rows loc = item_labels.get_loc(col) - self.obj._iset_item(loc, value, inplace=True) + self.obj._iset_item(loc, value) return indexer = maybe_convert_ix(*indexer) # e.g. test_setitem_frame_align