Change field value with hook_views_pre_render()
I was trying to do something similar as well. I had an integer field and I wanted to replace the integer column with a string value. That was not working. So I had to add a separate string field, maintained the integer field as a hidden field and then overwrote the string field. The code that worked is given below.

function module_views_pre_render(ViewExecutable $view) {
  // Change the comments column in the list of filings table in the view case
  if ($view-&gt;id() == 'my_view') {
    foreach ($view-&gt;result as $key =&gt; $value) {
      $custom_id = $value-&gt;_entity-&gt;get('custom_id')-&gt;value;
      $string = convert_id_to_string_get_user_name($custom_id);
      $value-&gt;_entity-&gt;set('string_field', $string);
    }
  }
}


There is documentation and sample snippets here but looks like it needs more documentation.

https://api.drupal.org/api/drupal/core!modules!views!views.api.php/function/hook_views_pre_render/8.2.x