class_docstr: A distributed Dask DataFrame where the backing dataframe is a
  :class:`cuDF DataFrame <cudf:cudf.DataFrame>`.
  
  Typically you would not construct this object directly, but rather
  use one of Dask-cuDF's IO routines.
  
  Most operations on :doc:`Dask DataFrames <dask:dataframe>` are
  supported, with many of the same caveats.
class_docstr_tok: ["A","distributed","Dask","DataFrame","where","the","backing","dataframe","is","a",":","class",":","`","cuDF","DataFrame","<","cudf",":","cudf.DataFrame",">","`",".","Typically","you","would","not","construct","this","object","directly",",","but","rather","use","one","of","Dask-cuDF","'s","IO","routines",".","Most","operations","on",":","doc",":","`","Dask","DataFrames","<","dask",":","dataframe",">","`","are","supported",",","with","many","of","the","same","caveats","."]
code: def apply_rows(
      self, func, incols, outcols, kwargs=None, cache_key=None
  ):
      import uuid
  
      if kwargs is None:
          kwargs = {}
  
      if cache_key is None:
          cache_key = uuid.uuid4()
  
      def do_apply_rows(df, func, incols, outcols, kwargs):
          return df.apply_rows(
              func, incols, outcols, kwargs, cache_key=cache_key
          )
  
      meta = do_apply_rows(self._meta, func, incols, outcols, kwargs)
      return self.map_partitions(
          do_apply_rows, func, incols, outcols, kwargs, meta=meta
      )
  
imports: import math
  import textwrap
  import warnings
  import numpy
  import pandas
  from tlz import partition_all
  from dask import dataframe
  from dask.base import normalize_token, tokenize
  from dask.dataframe.core import Scalar, handle_out, make_meta, map_partitions
  from dask.dataframe.utils import raise_on_meta_error
  from dask.highlevelgraph import HighLevelGraph
  from dask.utils import M, OperatorMethodMixin, apply, derived_from, funcname
  import cudf
  from cudf import _lib
  from cudf.utils.nvtx_annotation import _dask_cudf_nvtx_annotate
  from dask_cudf import sorting
  from dask_cudf.accessors import ListMethods, StructMethods
  from dask_cudf.sorting import _deprecate_shuffle_kwarg, _get_shuffle_method
label_desc: Use image node_id 2 for calling the DataFrame obj's underlying member method code with example usage: obj.apply_rows(func, incols, outcols, kwargs, cache_key) and returns: self, df