pandas.Series.map#

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

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

用于将 Series 中的每个值替换为另一个值,该值可以由函数、dictSeries 派生。

Parameters:
argfunction, collections.abc.Mapping subclass or Series

映射关系。

na_action{None, ‘ignore’},默认为 None

如果为 ‘ignore’,则传播 NaN 值,而不将它们传递给映射对应关系。

Returns:
Series

与调用者相同的索引。

参见

Series.apply

用于对 Series 应用更复杂的函数。

Series.replace

value 替换 to_replace 中给定的值。

DataFrame.apply

逐行/逐列应用函数。

DataFrame.map

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

Notes

arg 是字典时,Series 中不存在于字典(作为键)中的值将被转换为 NaN。但是,如果字典是定义了 __missing__``(即提供了默认值方法)的 ``dict 子类,则将使用此默认值而不是 NaN

Examples

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

map 接受 dictSeries。在 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