Skip to content

Commit 6bbb39e

Browse files
committed
Merge pull request #8675 from pydata/setitem
TST: fix up for 32-bit indexers w.r.t. (GH8669)
2 parents 9f15bea + a72149f commit 6bbb39e

File tree

1 file changed

+14
-12
lines changed

1 file changed

+14
-12
lines changed

pandas/core/internals.py

+14-12
Original file line numberDiff line numberDiff line change
@@ -551,29 +551,31 @@ def setitem(self, indexer, value):
551551
try:
552552

553553
def _is_scalar_indexer(indexer):
554-
# treat a len 0 array like a scalar
555554
# return True if we are all scalar indexers
556555

557556
if arr_value.ndim == 1:
558557
if not isinstance(indexer, tuple):
559558
indexer = tuple([indexer])
559+
return all([ np.isscalar(idx) for idx in indexer ])
560+
return False
560561

561-
def _is_ok(idx):
562-
563-
if np.isscalar(idx):
564-
return True
565-
elif isinstance(idx, slice):
566-
return False
567-
return len(idx) == 0
562+
def _is_empty_indexer(indexer):
563+
# return a boolean if we have an empty indexer
568564

569-
return all([ _is_ok(idx) for idx in indexer ])
565+
if arr_value.ndim == 1:
566+
if not isinstance(indexer, tuple):
567+
indexer = tuple([indexer])
568+
return all([ isinstance(idx, np.ndarray) and len(idx) == 0 for idx in indexer ])
570569
return False
571570

571+
# empty indexers
572+
# 8669 (empty)
573+
if _is_empty_indexer(indexer):
574+
pass
572575

573576
# setting a single element for each dim and with a rhs that could be say a list
574-
# or empty indexers (so no astyping)
575-
# GH 6043, 8669 (empty)
576-
if _is_scalar_indexer(indexer):
577+
# GH 6043
578+
elif _is_scalar_indexer(indexer):
577579
values[indexer] = value
578580

579581
# if we are an exact match (ex-broadcasting),

0 commit comments

Comments
 (0)