pandas.Series.apply#

Series.apply(func, convert_dtype=True, args=(), **kwargs)[源代码]#

对系列的值调用函数。

可以是ufunc(应用于整个系列的NumPy函数)或只对单个值起作用的Python函数。

参数
func功能

要应用的Python函数或NumPy ufunc。

convert_dtype布尔值,默认为True

尝试为基本函数结果找到更好的数据类型。如果为False,则保留为dtype=Object。请注意,数据类型始终为某些扩展数组数据类型保留,例如分类的。

args元组

在序列值之后传递给func的位置参数。

**kwargs

传递给函数的其他关键字参数。

退货
系列或DataFrame

如果Func返回Series对象,则结果将是DataFrame。

参见

Series.map

用于逐元素操作。

Series.agg

仅执行聚合类型操作。

Series.transform

仅执行转换类型操作。

注意事项

改变传递的对象的函数可能会产生意外的行为或错误,因此不受支持。看见 使用用户定义函数(UDF)方法进行变异 了解更多详细信息。

示例

为每个城市制作一系列典型的夏季气温。

>>> s = pd.Series([20, 21, 12],
...               index=['London', 'New York', 'Helsinki'])
>>> s
London      20
New York    21
Helsinki    12
dtype: int64

通过定义函数并将其作为参数传递给 apply()

>>> def square(x):
...     return x ** 2
>>> s.apply(square)
London      400
New York    441
Helsinki    144
dtype: int64

通过将匿名函数作为参数传递给 apply()

>>> s.apply(lambda x: x ** 2)
London      400
New York    441
Helsinki    144
dtype: int64

定义需要其他位置参数的自定义函数,并使用 args 关键字。

>>> def subtract_custom_value(x, custom_value):
...     return x - custom_value
>>> s.apply(subtract_custom_value, args=(5,))
London      15
New York    16
Helsinki     7
dtype: int64

定义一个接受关键字参数的自定义函数,并将这些参数传递给 apply

>>> def add_custom_values(x, **kwargs):
...     for month in kwargs:
...         x += kwargs[month]
...     return x
>>> s.apply(add_custom_values, june=30, july=20, august=25)
London      95
New York    96
Helsinki    87
dtype: int64

使用Numpy库中的函数。

>>> s.apply(np.log)
London      2.995732
New York    3.044522
Helsinki    2.484907
dtype: float64