diff --git a/pandas/core/algorithms.py b/pandas/core/algorithms.py index 6f906cf8879ff..ed51bb8034419 100644 --- a/pandas/core/algorithms.py +++ b/pandas/core/algorithms.py @@ -466,7 +466,7 @@ def isin(comps: AnyArrayLike, values: AnyArrayLike) -> np.ndarray: # Avoid raising in extract_array values = np.array(values) else: - values = extract_array(values, extract_numpy=True) + values = extract_array(values, extract_numpy=True, extract_range=True) comps = _ensure_arraylike(comps) comps = extract_array(comps, extract_numpy=True) diff --git a/pandas/tests/indexes/ranges/test_range.py b/pandas/tests/indexes/ranges/test_range.py index 3d36e03751f95..3f77c2c974842 100644 --- a/pandas/tests/indexes/ranges/test_range.py +++ b/pandas/tests/indexes/ranges/test_range.py @@ -524,3 +524,11 @@ def test_append_len_one(self, RI): # GH39401 result = RI.append([]) tm.assert_index_equal(result, RI, exact=True) + + @pytest.mark.parametrize("base", [RangeIndex(0, 2), Index([0, 1])]) + def test_isin_range(self, base): + # GH#41151 + values = RangeIndex(0, 1) + result = base.isin(values) + expected = np.array([True, False]) + tm.assert_numpy_array_equal(result, expected)