maxframe.dataframe.Series.map#

Series.map(arg, na_action=None, dtype=None, memory_scale=None, skip_infer=False)#

根据输入的对应关系映射 Series 的值。

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

参数:
  • arg (function, collections.abc.Mapping subclass or Series) -- 映射对应关系。

  • na_action ({None, 'ignore'}, default None) -- 如果为 'ignore',则传播 NaN 值,而不将其传递给映射对应关系。

  • dtype (np.dtype, default None) -- 指定函数的返回类型。当无法确定函数的返回类型时必须指定。

  • memory_scale (float) -- 指定函数中内存使用量相对于输入大小的规模。

  • skip_infer (bool, default False) -- 当未指定 dtypes 或 output_type 时是否推断数据类型

返回:

与调用者相同的索引。

返回类型:

Series

参见

Series.apply

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

DataFrame.apply

按行或列应用函数。

DataFrame.applymap

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

备注

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

示例

>>> import maxframe.tensor as mt
>>> import maxframe.dataframe as md
>>> s = md.Series(['cat', 'dog', mt.nan, 'rabbit'])
>>> s.execute()
0      cat
1      dog
2      NaN
3   rabbit
dtype: object

map 接受 dictSeries。在 dict 中找不到的值将被转换为 NaN,除非该字典具有默认值(例如 defaultdict):

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

它也接受一个函数:

>>> s.map('I am a {}'.format).execute()
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').execute()
0     I am a cat
1     I am a dog
2            NaN
3  I am a rabbit
dtype: object