class_docstr: Index based on an underlying `Categorical`.
  
  CategoricalIndex can only take on a limited,
  and usually fixed, number of possible values (`categories`). Also,
  it might have an order, but numerical operations
  (additions, divisions, ...) are not possible.
  
  Parameters
  ----------
  data : array-like (1-dimensional)
      The values of the categorical. If `categories` are given, values not in
      `categories` will be replaced with NaN.
  categories : index-like, optional
      The categories for the categorical. Items need to be unique.
      If the categories are not given here (and also not in `dtype`), they
      will be inferred from the `data`.
  ordered : bool, optional
      Whether or not this categorical is treated as an ordered
      categorical. If not given here or in `dtype`, the resulting
      categorical will be unordered.
  dtype : CategoricalDtype or "category", optional
      If :class:`CategoricalDtype`, cannot be used together with
      `categories` or `ordered`.
  copy : bool, default False
      Make a copy of input ndarray.
  name : object, optional
      Name to be stored in the index.
  
  See Also
  --------
  Index : The base pandas-on-Spark Index type.
  
  Examples
  --------
  >>> ps.CategoricalIndex(["a", "b", "c", "a", "b", "c"])  # doctest: +NORMALIZE_WHITESPACE
  CategoricalIndex(['a', 'b', 'c', 'a', 'b', 'c'],
                   categories=['a', 'b', 'c'], ordered=False, dtype='category')
  
  ``CategoricalIndex`` can also be instantiated from a ``Categorical``:
  
  >>> c = pd.Categorical(["a", "b", "c", "a", "b", "c"])
  >>> ps.CategoricalIndex(c)  # doctest: +NORMALIZE_WHITESPACE
  CategoricalIndex(['a', 'b', 'c', 'a', 'b', 'c'],
                   categories=['a', 'b', 'c'], ordered=False, dtype='category')
  
  Ordered ``CategoricalIndex`` can have a min and max value.
  
  >>> ci = ps.CategoricalIndex(
  ...     ["a", "b", "c", "a", "b", "c"], ordered=True, categories=["c", "b", "a"]
  ... )
  >>> ci  # doctest: +NORMALIZE_WHITESPACE
  CategoricalIndex(['a', 'b', 'c', 'a', 'b', 'c'],
                   categories=['c', 'b', 'a'], ordered=True, dtype='category')
  
  From a Series:
  
  >>> s = ps.Series(["a", "b", "c", "a", "b", "c"], index=[10, 20, 30, 40, 50, 60])
  >>> ps.CategoricalIndex(s)  # doctest: +NORMALIZE_WHITESPACE
  CategoricalIndex(['a', 'b', 'c', 'a', 'b', 'c'],
                   categories=['a', 'b', 'c'], ordered=False, dtype='category')
  
  From an Index:
  
  >>> idx = ps.Index(["a", "b", "c", "a", "b", "c"])
  >>> ps.CategoricalIndex(idx)  # doctest: +NORMALIZE_WHITESPACE
  CategoricalIndex(['a', 'b', 'c', 'a', 'b', 'c'],
                   categories=['a', 'b', 'c'], ordered=False, dtype='category')
class_docstr_tok: ["Index","based","on","an","underlying","`","Categorical","`",".","CategoricalIndex","can","only","take","on","a","limited",",","and","usually","fixed",",","number","of","possible","values","(","`","categories","`",")",".","Also",",","it","might","have","an","order",",","but","numerical","operations","(","additions",",","divisions",",","...",")","are","not","possible",".","Parameters","--","--","--","--","--","data",":","array-like","(","1-dimensional",")","The","values","of","the","categorical",".","If","`","categories","`","are","given",",","values","not","in","`","categories","`","will","be","replaced","with","NaN",".","categories",":","index-like",",","optional","The","categories","for","the","categorical",".","Items","need","to","be","unique",".","If","the","categories","are","not","given","here","(","and","also","not","in","`","dtype","`",")",",","they","will","be","inferred","from","the","`","data","`",".","ordered",":","bool",",","optional","Whether","or","not","this","categorical","is","treated","as","an","ordered","categorical",".","If","not","given","here","or","in","`","dtype","`",",","the","resulting","categorical","will","be","unordered",".","dtype",":","CategoricalDtype","or","``","category","''",",","optional","If",":","class",":","`","CategoricalDtype","`",",","can","not","be","used","together","with","`","categories","`","or","`","ordered","`",".","copy",":","bool",",","default","False","Make","a","copy","of","input","ndarray",".","name",":","object",",","optional","Name","to","be","stored","in","the","index",".","See","Also","--","--","--","--","Index",":","The","base","pandas-on-Spark","Index","type",".","Examples","--","--","--","--",">",">",">","ps.CategoricalIndex","(","[","``","a","''",",","``","b","''",",","``","c","''",",","``","a","''",",","``","b","''",",","``","c","''","]",")","#","doctest",":","+NORMALIZE_WHITESPACE","CategoricalIndex","(","[","'","a","'",",","'","b","'",",","'","c","'",",","'","a","'",",","'","b","'",",","'","c","'","]",",","categories=","[","'","a","'",",","'","b","'",",","'","c","'","]",",","ordered=False",",","dtype='category","'",")","``","CategoricalIndex","``","can","also","be","instantiated","from","a","``","Categorical","``",":",">",">",">","c","=","pd.Categorical","(","[","``","a","''",",","``","b","''",",","``","c","''",",","``","a","''",",","``","b","''",",","``","c","''","]",")",">",">",">","ps.CategoricalIndex","(","c",")","#","doctest",":","+NORMALIZE_WHITESPACE","CategoricalIndex","(","[","'","a","'",",","'","b","'",",","'","c","'",",","'","a","'",",","'","b","'",",","'","c","'","]",",","categories=","[","'","a","'",",","'","b","'",",","'","c","'","]",",","ordered=False",",","dtype='category","'",")","Ordered","``","CategoricalIndex","``","can","have","a","min","and","max","value",".",">",">",">","ci","=","ps.CategoricalIndex","(","...","[","``","a","''",",","``","b","''",",","``","c","''",",","``","a","''",",","``","b","''",",","``","c","''","]",",","ordered=True",",","categories=","[","``","c","''",",","``","b","''",",","``","a","''","]","...",")",">",">",">","ci","#","doctest",":","+NORMALIZE_WHITESPACE","CategoricalIndex","(","[","'","a","'",",","'","b","'",",","'","c","'",",","'","a","'",",","'","b","'",",","'","c","'","]",",","categories=","[","'","c","'",",","'","b","'",",","'","a","'","]",",","ordered=True",",","dtype='category","'",")","From","a","Series",":",">",">",">","s","=","ps.Series","(","[","``","a","''",",","``","b","''",",","``","c","''",",","``","a","''",",","``","b","''",",","``","c","''","]",",","index=","[","10",",","20",",","30",",","40",",","50",",","60","]",")",">",">",">","ps.CategoricalIndex","(","s",")","#","doctest",":","+NORMALIZE_WHITESPACE","CategoricalIndex","(","[","'","a","'",",","'","b","'",",","'","c","'",",","'","a","'",",","'","b","'",",","'","c","'","]",",","categories=","[","'","a","'",",","'","b","'",",","'","c","'","]",",","ordered=False",",","dtype='category","'",")","From","an","Index",":",">",">",">","idx","=","ps.Index","(","[","``","a","''",",","``","b","''",",","``","c","''",",","``","a","''",",","``","b","''",",","``","c","''","]",")",">",">",">","ps.CategoricalIndex","(","idx",")","#","doctest",":","+NORMALIZE_WHITESPACE","CategoricalIndex","(","[","'","a","'",",","'","b","'",",","'","c","'",",","'","a","'",",","'","b","'",",","'","c","'","]",",","categories=","[","'","a","'",",","'","b","'",",","'","c","'","]",",","ordered=False",",","dtype='category","'",")"]
docstr: Rename categories.
  
  Parameters
  ----------
  new_categories : list-like, dict-like or callable
  
      New categories which will replace old categories.
  
      * list-like: all items must be unique and the number of items in
        the new categories must match the existing number of categories.
  
      * dict-like: specifies a mapping from
        old categories to new. Categories not contained in the mapping
        are passed through and extra categories in the mapping are
        ignored.
  
      * callable : a callable that is called on all items in the old
        categories and whose return values comprise the new categories.
  
  Returns
  -------
  cat : CategoricalIndex
      Categorical with removed categories or None
  
  Raises
  ------
  ValueError
      If new categories are list-like and do not have the same number of
      items than the current categories or do not validate as categories
  
  See Also
  --------
  reorder_categories : Reorder categories.
  add_categories : Add new categories.
  remove_categories : Remove the specified categories.
  remove_unused_categories : Remove categories which are not used.
  set_categories : Set the categories to the specified ones.
  
  Examples
  --------
  >>> idx = ps.CategoricalIndex(["a", "a", "b"])
  >>> idx.rename_categories([0, 1])
  CategoricalIndex([0, 0, 1], categories=[0, 1], ordered=False, dtype='category')
  
  For dict-like ``new_categories``, extra keys are ignored and
  categories not in the dictionary are passed through
  
  >>> idx.rename_categories({'a': 'A', 'c': 'C'})
  CategoricalIndex(['A', 'A', 'b'], categories=['A', 'b'], ordered=False, dtype='category')
  
  You may also provide a callable to create the new categories
  
  >>> idx.rename_categories(lambda x: x.upper())
  CategoricalIndex(['A', 'A', 'B'], categories=['A', 'B'], ordered=False, dtype='category')
docstr_tok: ["Rename","categories",".","Parameters","--","--","--","--","--","new_categories",":","list-like",",","dict-like","or","callable","New","categories","which","will","replace","old","categories",".","*","list-like",":","all","items","must","be","unique","and","the","number","of","items","in","the","new","categories","must","match","the","existing","number","of","categories",".","*","dict-like",":","specifies","a","mapping","from","old","categories","to","new",".","Categories","not","contained","in","the","mapping","are","passed","through","and","extra","categories","in","the","mapping","are","ignored",".","*","callable",":","a","callable","that","is","called","on","all","items","in","the","old","categories","and","whose","return","values","comprise","the","new","categories",".","Returns","--","--","--","-","cat",":","CategoricalIndex","Categorical","with","removed","categories","or","None","Raises","--","--","--","ValueError","If","new","categories","are","list-like","and","do","not","have","the","same","number","of","items","than","the","current","categories","or","do","not","validate","as","categories","See","Also","--","--","--","--","reorder_categories",":","Reorder","categories",".","add_categories",":","Add","new","categories",".","remove_categories",":","Remove","the","specified","categories",".","remove_unused_categories",":","Remove","categories","which","are","not","used",".","set_categories",":","Set","the","categories","to","the","specified","ones",".","Examples","--","--","--","--",">",">",">","idx","=","ps.CategoricalIndex","(","[","``","a","''",",","``","a","''",",","``","b","''","]",")",">",">",">","idx.rename_categories","(","[","0",",","1","]",")","CategoricalIndex","(","[","0",",","0",",","1","]",",","categories=","[","0",",","1","]",",","ordered=False",",","dtype='category","'",")","For","dict-like","``","new_categories","``",",","extra","keys","are","ignored","and","categories","not","in","the","dictionary","are","passed","through",">",">",">","idx.rename_categories","(","{","'","a","'",":","'","A","'",",","'","c","'",":","'","C","'","}",")","CategoricalIndex","(","[","'","A","'",",","'","A","'",",","'","b","'","]",",","categories=","[","'","A","'",",","'","b","'","]",",","ordered=False",",","dtype='category","'",")","You","may","also","provide","a","callable","to","create","the","new","categories",">",">",">","idx.rename_categories","(","lambda","x",":","x.upper","(",")",")","CategoricalIndex","(","[","'","A","'",",","'","A","'",",","'","B","'","]",",","categories=","[","'","A","'",",","'","B","'","]",",","ordered=False",",","dtype='category","'",")"]
code: def rename_categories(
      self, new_categories: Union[list, dict, Callable]
  ) -> Optional["CategoricalIndex"]:
      """
      Rename categories.
  
      Parameters
      ----------
      new_categories : list-like, dict-like or callable
  
          New categories which will replace old categories.
  
          * list-like: all items must be unique and the number of items in
            the new categories must match the existing number of categories.
  
          * dict-like: specifies a mapping from
            old categories to new. Categories not contained in the mapping
            are passed through and extra categories in the mapping are
            ignored.
  
          * callable : a callable that is called on all items in the old
            categories and whose return values comprise the new categories.
  
      Returns
      -------
      cat : CategoricalIndex
          Categorical with removed categories or None
  
      Raises
      ------
      ValueError
          If new categories are list-like and do not have the same number of
          items than the current categories or do not validate as categories
  
      See Also
      --------
      reorder_categories : Reorder categories.
      add_categories : Add new categories.
      remove_categories : Remove the specified categories.
      remove_unused_categories : Remove categories which are not used.
      set_categories : Set the categories to the specified ones.
  
      Examples
      --------
      >>> idx = ps.CategoricalIndex(["a", "a", "b"])
      >>> idx.rename_categories([0, 1])
      CategoricalIndex([0, 0, 1], categories=[0, 1], ordered=False, dtype='category')
  
      For dict-like ``new_categories``, extra keys are ignored and
      categories not in the dictionary are passed through
  
      >>> idx.rename_categories({'a': 'A', 'c': 'C'})
      CategoricalIndex(['A', 'A', 'b'], categories=['A', 'b'], ordered=False, dtype='category')
  
      You may also provide a callable to create the new categories
  
      >>> idx.rename_categories(lambda x: x.upper())
      CategoricalIndex(['A', 'A', 'B'], categories=['A', 'B'], ordered=False, dtype='category')
      """
      return CategoricalIndex(
          self.to_series().cat.rename_categories(new_categories)
      ).rename(self.name)
  
imports: from typing import Any, Callable, List, Optional, Union, cast, no_type_check
  import pandas
  from pandas.api.types import is_hashable, CategoricalDtype
  from pyspark import pandas
  from pyspark.pandas.indexes.base import Index
  from pyspark.pandas.internal import InternalField
  from pyspark.pandas.series import Series
  from pyspark.sql.types import StructField
label_desc: Use image node_id 12 for calling the CategoricalIndex obj's underlying member method code with example usage: obj.rename_categories(new_categories) and returns: CategoricalIndex