pandas.Series.map#
- Series.map(arg, na_action=None)[源代码]#
根据输入映射或函数映射 Series 的值。
用于将 Series 中的每个值替换为另一个值,该值可以由函数、
dict或Series派生。- 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接受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