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