Skip to content

Commit e2b809a

Browse files
Revert "CLN: Remove special cases in indexing ops (pandas-dev#52063)"
This reverts commit 8e456d3.
1 parent c8bdce9 commit e2b809a

File tree

1 file changed

+17
-5
lines changed

1 file changed

+17
-5
lines changed

pandas/core/indexing.py

+17-5
Original file line numberDiff line numberDiff line change
@@ -810,8 +810,14 @@ def _maybe_mask_setitem_value(self, indexer, value):
810810

811811
if is_scalar_indexer(icols, self.ndim - 1) and ndim == 1:
812812
# e.g. test_loc_setitem_boolean_mask_allfalse
813-
# test_loc_setitem_ndframe_values_alignment
814-
value = self.obj.iloc._align_series(indexer, value)
813+
if len(newkey) == 0:
814+
# FIXME: kludge for test_loc_setitem_boolean_mask_allfalse
815+
# TODO(GH#45333): may be fixed when deprecation is enforced
816+
817+
value = value.iloc[:0]
818+
else:
819+
# test_loc_setitem_ndframe_values_alignment
820+
value = self.obj.iloc._align_series(indexer, value)
815821
indexer = (newkey, icols)
816822

817823
elif (
@@ -827,8 +833,14 @@ def _maybe_mask_setitem_value(self, indexer, value):
827833
indexer = (newkey, icols)
828834

829835
elif ndim == 2 and value.shape[1] == 1:
830-
# test_loc_setitem_ndframe_values_alignment
831-
value = self.obj.iloc._align_frame(indexer, value)
836+
if len(newkey) == 0:
837+
# FIXME: kludge for
838+
# test_loc_setitem_all_false_boolean_two_blocks
839+
# TODO(GH#45333): may be fixed when deprecation is enforced
840+
value = value.iloc[:0]
841+
else:
842+
# test_loc_setitem_ndframe_values_alignment
843+
value = self.obj.iloc._align_frame(indexer, value)
832844
indexer = (newkey, icols)
833845
elif com.is_bool_indexer(indexer):
834846
indexer = indexer.nonzero()[0]
@@ -2389,7 +2401,7 @@ def ravel(i):
23892401
new_ix = Index([new_ix])
23902402
else:
23912403
new_ix = Index(new_ix)
2392-
if ser.index.equals(new_ix):
2404+
if ser.index.equals(new_ix) or not len(new_ix):
23932405
if using_cow:
23942406
return ser
23952407
return ser._values.copy()

0 commit comments

Comments
 (0)