Skip to content

Commit 7f04bdc

Browse files
committed
Only check new values
1 parent 0d2c2c4 commit 7f04bdc

File tree

1 file changed

+4
-15
lines changed

1 file changed

+4
-15
lines changed

pandas/core/indexing.py

Lines changed: 4 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1994,27 +1994,16 @@ def _setitem_single_column(self, loc: int, value, plane_indexer):
19941994
self.obj._clear_item_cache()
19951995
return
19961996

1997+
self.obj._iset_item(loc, value)
1998+
19971999
# We will not operate in-place, but will attempt to in the future.
19982000
# To determine whether we need to issue a FutureWarning, see if the
19992001
# setting in-place would work, i.e. behavior will change.
2000-
if isinstance(value, ABCSeries):
2001-
warn = can_hold_element(orig_values, value._values)
2002-
else:
2003-
warn = can_hold_element(orig_values, value)
2004-
2005-
# Don't issue the warning yet, as we can still trim a few cases where
2006-
# behavior will not change.
20072002

2008-
self.obj._iset_item(loc, value)
2003+
new_values = self.obj._get_column_array(loc)
2004+
warn = can_hold_element(orig_values, new_values)
20092005

20102006
if warn:
2011-
new_values = self.obj._get_column_array(loc)
2012-
2013-
# Check again, iset_item might have introduced nans through reindexing
2014-
warn = can_hold_element(orig_values, new_values)
2015-
2016-
if not warn:
2017-
return
20182007

20192008
if (
20202009
isinstance(new_values, np.ndarray)

0 commit comments

Comments
 (0)