dask.dataframe.Series.map

dask.dataframe.Series.map

Series.map(arg, na_action=None, meta=_NoDefault.no_default)[源代码]

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

此文档字符串是从 pandas.core.series.Series.map 复制而来的。

Dask 版本可能存在一些不一致性。

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

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

映射对应关系。

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

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

metapd.DataFrame, pd.Series, dict, iterable, tuple, optional

一个空的 pd.DataFramepd.Series,其数据类型和列名与输出匹配。此元数据对于 dask dataframe 中的许多算法正常工作是必要的。为了便于使用,还提供了一些替代输入。除了 DataFrame 之外,还可以提供 {name: dtype} 的字典或 (name, dtype) 的可迭代对象(注意名称的顺序应与列的顺序匹配)。除了系列之外,还可以使用 (name, dtype) 的元组。如果未提供,dask 将尝试推断元数据。这可能会导致意外结果,因此建议提供 meta。有关更多信息,请参阅 dask.dataframe.utils.make_meta

返回
系列

与调用者相同的索引。

参见

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,除非该字典有一个默认值(例如 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