Skip to content

Commit f84cd8b

Browse files
committed
Code clean up (restore iterator in map_infer_mask
1 parent acfe152 commit f84cd8b

File tree

2 files changed

+6
-3
lines changed

2 files changed

+6
-3
lines changed

pandas/_libs/lib.pyx

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3024,23 +3024,26 @@ def map_infer_mask(
30243024

30253025
ndarray result = np.empty(n, dtype=dtype)
30263026

3027+
flatiter arr_it = PyArray_IterNew(arr)
30273028
flatiter result_it = PyArray_IterNew(result)
30283029

30293030
for i in range(n):
30303031
if mask[i]:
30313032
if na_value is no_default:
3032-
val = arr[i]
3033+
val = PyArray_GETITEM(arr, PyArray_ITER_DATA(arr_it))
30333034
else:
30343035
val = na_value
30353036
else:
3036-
val = arr[i]
3037+
val = PyArray_GETITEM(arr, PyArray_ITER_DATA(arr_it))
30373038
val = f(val)
30383039

30393040
if cnp.PyArray_IsZeroDim(val):
30403041
# unbox 0-dim arrays, GH#690
30413042
val = val.item()
30423043

30433044
PyArray_SETITEM(result, PyArray_ITER_DATA(result_it), val)
3045+
3046+
PyArray_ITER_NEXT(arr_it)
30443047
PyArray_ITER_NEXT(result_it)
30453048

30463049
if convert:

pandas/core/algorithms.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1746,7 +1746,7 @@ def _build_map_infer_methods_params(arr: ArrayLike):
17461746
storage = None
17471747
if isinstance(arr.dtype, BaseMaskedDtype):
17481748
arr = cast("BaseMaskedArray", arr)
1749-
values = arr._data
1749+
values = np.fromiter(arr._data, dtype="O")
17501750
if arr._hasna:
17511751
na_value = arr.dtype.na_value
17521752

0 commit comments

Comments
 (0)