diff --git a/pandas/core/indexers/utils.py b/pandas/core/indexers/utils.py index ed29e61b0db68..f685bc285f697 100644 --- a/pandas/core/indexers/utils.py +++ b/pandas/core/indexers/utils.py @@ -325,7 +325,7 @@ def length_of_indexer(indexer, target=None) -> int: return indexer.sum() return len(indexer) elif isinstance(indexer, range): - return (indexer.stop - indexer.start) // indexer.step + return len(indexer) elif not is_list_like_indexer(indexer): return 1 raise AssertionError("cannot find the length of the indexer") diff --git a/pandas/tests/indexing/test_indexers.py b/pandas/tests/indexing/test_indexers.py index ddc5c039160d5..eb4090f3cf180 100644 --- a/pandas/tests/indexing/test_indexers.py +++ b/pandas/tests/indexing/test_indexers.py @@ -16,6 +16,11 @@ def test_length_of_indexer(): assert result == 1 +def test_length_of_indexer_range(): + indexer = range(0, 5, 2) + assert length_of_indexer(indexer) == len(indexer) + + def test_is_scalar_indexer(): indexer = (0, 1) assert is_scalar_indexer(indexer, 2)