diff --git a/pandas/core/algorithms.py b/pandas/core/algorithms.py index dd45969a13fd7..d1fa95ed63d09 100644 --- a/pandas/core/algorithms.py +++ b/pandas/core/algorithms.py @@ -1630,11 +1630,12 @@ def safe_sort( if use_na_sentinel: # take_nd is faster, but only works for na_sentinels of -1 order2 = sorter.argsort() - new_codes = take_nd(order2, codes, fill_value=-1) if verify: mask = (codes < -len(values)) | (codes >= len(values)) + codes[mask] = 0 else: mask = None + new_codes = take_nd(order2, codes, fill_value=-1) else: reverse_indexer = np.empty(len(sorter), dtype=int) reverse_indexer.put(sorter, np.arange(len(sorter))) diff --git a/pandas/tests/test_sorting.py b/pandas/tests/test_sorting.py index 2d21d1200acac..046a4749925d8 100644 --- a/pandas/tests/test_sorting.py +++ b/pandas/tests/test_sorting.py @@ -5,11 +5,6 @@ import numpy as np import pytest -from pandas.compat import ( - is_ci_environment, - is_platform_windows, -) - from pandas import ( NA, DataFrame, @@ -409,11 +404,6 @@ def test_codes(self, verify, codes, exp_codes): tm.assert_numpy_array_equal(result, expected) tm.assert_numpy_array_equal(result_codes, expected_codes) - @pytest.mark.skipif( - is_platform_windows() and is_ci_environment(), - reason="In CI environment can crash thread with: " - "Windows fatal exception: access violation", - ) def test_codes_out_of_bound(self): values = np.array([3, 1, 2, 0, 4]) expected = np.array([0, 1, 2, 3, 4])