class_docstr: Accessor object for string properties of the Series values.
  
  Examples
  --------
  
  >>> s.str.lower()  # doctest: +SKIP
class_docstr_tok: ["Accessor","object","for","string","properties","of","the","Series","values",".","Examples","--","--","--","--",">",">",">","s.str.lower","(",")","#","doctest",":","+SKIP"]
code: def cat(self, others=None, sep=None, na_rep=None):
      from dask.dataframe.core import Index, Series
  
      if others is None:
  
          def str_cat_none(x):
              if isinstance(x, (Series, Index)):
                  x = x.compute()
  
              return x.str.cat(sep=sep, na_rep=na_rep)
  
          return self._series.reduction(
              chunk=str_cat_none, aggregate=str_cat_none
          )
  
      valid_types = (Series, Index, pd.Series, pd.Index)
      if isinstance(others, valid_types):
          others = [others]
      elif not all(isinstance(a, valid_types) for a in others):
          raise TypeError("others must be Series/Index")
  
      return self._series.map_partitions(
          str_cat,
          *others,
          sep=sep,
          na_rep=na_rep,
          meta=self._series._meta,
      )
  
imports: from __future__ import annotations
  import warnings
  import numpy
  import pandas
  from dask.dataframe._compat import check_to_pydatetime_deprecation
  from dask.utils import derived_from
label_desc: Use image node_id 4 for calling the StringAccessor obj's underlying member method code with example usage: obj.cat(others, sep, na_rep) and returns: self, self, x