Help to simplify/optimize a function

Reduce is fine and a single iteration:

@spec reshape_map_int_fields(map) :: map
def reshape_map_int_fields(map) when is_map(map),
  do: Enum.reduce(map, %{}, fn {k, v}, acc ->
        Map.put(acc, k, maybe_reshape(k, v))
      end)

@spec maybe_reshape(atom, term) :: integer | term
def maybe_reshape(k, v) when is_atom(k) and not is_integer(v) and not is_nil(v) do
  case Atom.to_string(k) do
    <<"int_", _>> ->
      case Integer.parse(v) do
        {new_val, _} -> new_val
        _ -> nil
      end
    _ ->
      v
  end
end

def maybe_reshape(_, v), do: v