pandas.Series.map#

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

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

用于将 Series 中的每个值替换为另一个值,该值可以源自函数、dictSeries

参数:
参数函数, collections.abc.Mapping 子类或 Series

映射对应关系。

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

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

返回:
系列

与调用者相同的索引。

参见

Series.apply

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

Series.replace

to_replace 中给出的值替换为 value

DataFrame.apply

按行/列应用函数。

DataFrame.map

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

备注

arg 是一个字典时,Series 中不在字典(作为键)中的值被转换为 NaN。然而,如果字典是一个定义了 __missing__dict 子类(即提供了一个默认值的方法),那么这个默认值将被使用,而不是 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