Skip to content

Commit a5621a7

Browse files
jbrockmendelSeeminSyed
authored andcommitted
REF: de-nest Series.__setitem__ (pandas-dev#32078)
1 parent fa24f5b commit a5621a7

File tree

1 file changed

+8
-6
lines changed

1 file changed

+8
-6
lines changed

pandas/core/series.py

+8-6
Original file line numberDiff line numberDiff line change
@@ -970,14 +970,15 @@ def __setitem__(self, key, value):
970970
key = com.apply_if_callable(key, self)
971971
cacher_needs_updating = self._check_is_chained_assignment_possible()
972972

973+
if key is Ellipsis:
974+
key = slice(None)
975+
973976
try:
974977
self._set_with_engine(key, value)
975978
except (KeyError, ValueError):
976979
values = self._values
977980
if is_integer(key) and not self.index.inferred_type == "integer":
978981
values[key] = value
979-
elif key is Ellipsis:
980-
self[:] = value
981982
else:
982983
self.loc[key] = value
983984

@@ -995,9 +996,10 @@ def __setitem__(self, key, value):
995996
self._where(~key, value, inplace=True)
996997
return
997998
except InvalidIndexError:
998-
pass
999+
self._set_values(key.astype(np.bool_), value)
9991000

1000-
self._set_with(key, value)
1001+
else:
1002+
self._set_with(key, value)
10011003

10021004
if cacher_needs_updating:
10031005
self._maybe_update_cacher()
@@ -1038,13 +1040,13 @@ def _set_with(self, key, value):
10381040
else:
10391041
key_type = lib.infer_dtype(key, skipna=False)
10401042

1043+
# Note: key_type == "boolean" should not occur because that
1044+
# should be caught by the is_bool_indexer check in __setitem__
10411045
if key_type == "integer":
10421046
if self.index.inferred_type == "integer":
10431047
self._set_labels(key, value)
10441048
else:
10451049
return self._set_values(key, value)
1046-
elif key_type == "boolean":
1047-
self._set_values(key.astype(np.bool_), value)
10481050
else:
10491051
self._set_labels(key, value)
10501052

0 commit comments

Comments
 (0)