pandas.CategoricalIndex.map#
- CategoricalIndex.map(mapper, na_action=None)[源代码][源代码]#
使用输入映射或函数映射值。
将索引的值(它们的类别,不是代码)映射到新的类别。如果映射对应是一对一的,结果是一个具有与原始索引相同顺序属性的
CategoricalIndex
,否则返回一个Index
。如果使用 dict 或
Series
,任何未映射的类别都将映射到 NaN。请注意,如果发生这种情况,将返回一个Index
。- 参数:
- mapper函数, 字典, 或 系列
映射对应关系。
- na_action{None, ‘ignore’}, 默认 ‘ignore’
如果为 ‘ignore’,则传播 NaN 值,而不将它们传递给映射对应关系。
- 返回:
- pandas.CategoricalIndex 或 pandas.Index
映射索引。
参见
Index.map
在
Index
上应用映射对应关系。Series.map
在
Series
上应用映射对应关系。Series.apply
在
Series
上应用更复杂的函数。
例子
>>> 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')
如果映射是一对一的,类别的顺序将被保留:
>>> 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')
如果映射不是一对一的,则返回一个
Index
:>>> idx.map({"a": "first", "b": "second", "c": "first"}) Index(['first', 'second', 'first'], dtype='object')
如果使用 dict ,所有未映射的类别都被映射到 NaN ,结果是一个
Index
。>>> idx.map({"a": "first", "b": "second"}) Index(['first', 'second', nan], dtype='object')