# pandas.CategoricalIndex.map

CategoricalIndex.map(mapper)

  Map values using input correspondence (a dict, Series, or function).

  Maps the values (their categories, not the codes) of the index to new categories. If the mapping correspondence is one-to-one the result is a `CategoricalIndex` which has the same order property as the original, otherwise an `Index` is returned.

  If a dict or `Series` is used any unmapped category is mapped to NaN. Note that if this happens an `Index` will be returned.

  Parameters
    mapper function, dict, or Series

      Mapping correspondence.

  Returns
    pandas.CategoricalIndex or pandas.Index

      Mapped index.

  See also

  `Index.map`

    Apply a mapping correspondence on an `Index`.

  `Series.map`

    Apply a mapping correspondence on a `Series`.

  `Series.apply`

    Apply more complex functions on a `Series`.

  Examples

      >>> idx = pd.CategoricalIndex(['a', 'b', 'c'])
      >>> idx
      CategoricalIndex(['a', 'b', 'c'], categories=['a', 'b', 'c'],
                        ordered=False, dtype='category')
      >>> idx.map(lambda x: x.upper())
      CategoricalIndex(['A', 'B', 'C'], categories=['A', 'B', 'C'],
                       ordered=False, dtype='category')
      >>> idx.map({'a': 'first', 'b': 'second', 'c': 'third'})
      CategoricalIndex(['first', 'second', 'third'], categories=['first',
                       'second', 'third'], ordered=False, dtype='category')

  If the mapping is one-to-one the ordering of the categories is preserved:

      >>> idx = pd.CategoricalIndex(['a', 'b', 'c'], ordered=True)
      >>> idx
      CategoricalIndex(['a', 'b', 'c'], categories=['a', 'b', 'c'],
                       ordered=True, dtype='category')
      >>> idx.map({'a': 3, 'b': 2, 'c': 1})
      CategoricalIndex([3, 2, 1], categories=[3, 2, 1], ordered=True,
                       dtype='category')

  If the mapping is not one-to-one an `Index` is returned:

      >>> idx.map({'a': 'first', 'b': 'second', 'c': 'first'})
      Index(['first', 'second', 'first'], dtype='object')

  If a dict is used, all unmapped categories are mapped to NaN and the result is an `Index`:

      >>> idx.map({'a': 'first', 'b': 'second'})
      Index(['first', 'second', nan], dtype='object')