class_docstr: A Column object for Numeric types.
  
  Parameters
  ----------
  data : Buffer
  dtype : np.dtype
      The dtype associated with the data Buffer
  mask : Buffer, optional
class_docstr_tok: ["A","Column","object","for","Numeric","types",".","Parameters","--","--","--","--","--","data",":","Buffer","dtype",":","np.dtype","The","dtype","associated","with","the","data","Buffer","mask",":","Buffer",",","optional"]
docstr: Fill null values with *fill_value*
docstr_tok: ["Fill","null","values","with","*","fill_value","*"]
code: def fillna(
      self,
      fill_value: Any = None,
      method: Optional[str] = None,
  ) -> Self:
      """
      Fill null values with *fill_value*
      """
      col = self.nans_to_nulls()
  
      if col.null_count == 0:
          return col
  
      if method is not None:
          return super(NumericalColumn, col).fillna(fill_value, method)
  
      if fill_value is None:
          raise ValueError(
              "Must specify either 'fill_value' or 'method'"
          )
  
      if (
          isinstance(fill_value, cudf.Scalar)
          and fill_value.dtype == col.dtype
      ):
          return super(NumericalColumn, col).fillna(fill_value, method)
  
      if np.isscalar(fill_value):
          # cast safely to the same dtype as self
          fill_value_casted = col.dtype.type(fill_value)
          if not np.isnan(fill_value) and (
              fill_value_casted != fill_value
          ):
              raise TypeError(
                  f"Cannot safely cast non-equivalent "
                  f"{type(fill_value).__name__} to {col.dtype.name}"
              )
          fill_value = cudf.Scalar(fill_value_casted)
      else:
          fill_value = column.as_column(fill_value, nan_as_null=False)
          if is_integer_dtype(col.dtype):
              # cast safely to the same dtype as self
              if fill_value.dtype != col.dtype:
                  new_fill_value = fill_value.astype(col.dtype)
                  if not (new_fill_value == fill_value).all():
                      raise TypeError(
                          f"Cannot safely cast non-equivalent "
                          f"{fill_value.dtype.type.__name__} to "
                          f"{col.dtype.type.__name__}"
                      )
                  fill_value = new_fill_value
          else:
              fill_value = fill_value.astype(col.dtype)
  
      return super(NumericalColumn, col).fillna(fill_value, method)
  
imports: from __future__ import annotations
  from typing import Any, Callable, Mapping, Optional, Sequence, Tuple, Union, cast
  import cupy
  import numpy
  import pandas
  from typing_extensions import Self
  import cudf
  from cudf import _lib
  from cudf._lib.types import size_type_dtype
  from cudf._typing import ColumnBinaryOperand, ColumnLike, Dtype, DtypeObj, ScalarLike
  from cudf.api.types import is_bool_dtype, is_float_dtype, is_integer, is_integer_dtype, is_scalar
  from cudf.core.buffer import Buffer, cuda_array_interface_wrapper
  from cudf.core.column import ColumnBase, as_column, build_column, column, full, string
  from cudf.core.dtypes import CategoricalDtype
  from cudf.core.mixins import BinaryOperand
  from cudf.utils.dtypes import NUMERIC_TYPES, min_column_type, min_signed_type, np_dtypes_to_pandas_dtypes, numeric_normalize_types
  from .numerical_base import NumericalBaseColumn
label_desc: Use image node_id 25 for calling the NumericalColumn obj's underlying member method code with example usage: obj.fillna(fill_value, method) and returns: super, col, super, super