pandas.Series.map#

Series.map(arg, na_action=None)[源代码]#

根据输入映射或函数映射系列的值。

用于将级数中的每个值替换为另一个值,该值可以从一个函数派生, dict 或者是 Series

参数
arg函数,集合。abc.映射子类或系列

映射通信。

na_action{无,‘忽略’},默认为无

如果为‘Ignore’,则传播NAN值,而不将它们传递给映射通信。

退货
系列

与调用方相同的索引。

参见

Series.apply

用于在级数上应用更复杂的函数。

DataFrame.apply

按行/列应用函数。

DataFrame.applymap

在整个DataFrame上逐个元素地应用函数。

注意事项

什么时候 arg 是字典,则不在字典中的系列中的值(作为键)将转换为 NaN 。但是,如果词典是 dict 子类,用于定义 __missing__ (即提供缺省值的方法),则使用该缺省值,而不是 NaN

示例

>>> s = pd.Series(['cat', 'dog', np.nan, 'rabbit'])
>>> s
0      cat
1      dog
2      NaN
3   rabbit
dtype: object

map 接受一个 dict 或者是 Series 。中找不到的值 dict 被转换为 NaN ,除非DICT具有缺省值(例如 defaultdict ):

>>> s.map({'cat': 'kitten', 'dog': 'puppy'})
0   kitten
1    puppy
2      NaN
3      NaN
dtype: object

它还接受一个函数:

>>> s.map('I am a {}'.format)
0       I am a cat
1       I am a dog
2       I am a nan
3    I am a rabbit
dtype: object

避免将函数应用于缺少的值(并将它们保留为 NaN ) na_action='ignore' 可以使用:

>>> s.map('I am a {}'.format, na_action='ignore')
0     I am a cat
1     I am a dog
2            NaN
3  I am a rabbit
dtype: object