On this page
pandas.CategoricalIndex.map
CategoricalIndex.map(self, mapper)
[source]-
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 anIndex
is returned.If a
dict
orSeries
is used any unmapped category is mapped toNaN
. Note that if this happens anIndex
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 toNaN
and the result is anIndex
:>>> idx.map({'a': 'first', 'b': 'second'}) Index(['first', 'second', nan], dtype='object')
-
© 2008–2012, AQR Capital Management, LLC, Lambda Foundry, Inc. and PyData Development Team
Licensed under the 3-clause BSD License.
https://pandas.pydata.org/pandas-docs/version/0.25.0/reference/api/pandas.CategoricalIndex.map.html