MCPcopy
hub / github.com/pandas-dev/pandas / length_of_indexer

Function length_of_indexer

pandas/core/indexers/utils.py:292–331  ·  view source on GitHub ↗

Return the expected length of target[indexer] Returns ------- int

(indexer, target=None)

Source from the content-addressed store, hash-verified

290
291
292def length_of_indexer(indexer, target=None) -> int:
293 """
294 Return the expected length of target[indexer]
295
296 Returns
297 -------
298 int
299 """
300 if target is not None and isinstance(indexer, slice):
301 target_len = len(target)
302 start = indexer.start
303 stop = indexer.stop
304 step = indexer.step
305 if start is None:
306 start = 0
307 elif start < 0:
308 start += target_len
309 if stop is None or stop > target_len:
310 stop = target_len
311 elif stop < 0:
312 stop += target_len
313 if step is None:
314 step = 1
315 elif step < 0:
316 start, stop = stop + 1, start + 1
317 step = -step
318 return (stop - start + step - 1) // step
319 elif isinstance(indexer, (ABCSeries, ABCIndex, np.ndarray, list)):
320 if isinstance(indexer, list):
321 indexer = np.array(indexer)
322
323 if indexer.dtype == bool:
324 # GH#25774
325 return indexer.sum()
326 return len(indexer)
327 elif isinstance(indexer, range):
328 return (indexer.stop - indexer.start) // indexer.step
329 elif not is_list_like_indexer(indexer):
330 return 1
331 raise AssertionError("cannot find the length of the indexer")
332
333
334def disallow_ndim_indexing(result) -> None:

Callers 3

test_length_of_indexerFunction · 0.90
check_setitem_lengthsFunction · 0.85

Calls 3

is_list_like_indexerFunction · 0.85
arrayMethod · 0.45
sumMethod · 0.45

Tested by 1

test_length_of_indexerFunction · 0.72