pandas.Series.apply¶
-
Series.
apply
(func, convert_dtype=True, args=(), **kwds)[source]¶ 对Series的值调用函数。可以是ufunc(适用于整个系列的NumPy函数)或仅适用于单个值的Python函数
参数: func:function
convert_dtype:boolean,default True
尝试找到更好的dtype元素功能结果。如果为False,则保留为dtype = object
args:tuple
除了值之外,还要传递给函数的位置参数
其他关键字参数将作为关键字传递到函数
返回: y:如果func返回一个Series,则为Series或DataFrame
也可以看看
Series.map
- 对于逐个元素的操作
例子
为每个城市创建一个具有典型夏季温度的系列。
>>> import pandas as pd >>> import numpy as np >>> series = pd.Series([20, 21, 12], index=['London', ... 'New York','Helsinki']) London 20 New York 21 Helsinki 12 dtype: int64
通过定义函数并将其作为参数传递给
apply()
来对值进行平方。>>> def square(x): ... return x**2 >>> series.apply(square) London 400 New York 441 Helsinki 144 dtype: int64
通过将匿名函数作为参数传递给
apply()
来对值进行平方。>>> series.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
>>> series.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
>>> series.apply(add_custom_values, june=30, july=20, august=25) London 95 New York 96 Helsinki 87 dtype: int64
使用Numpy库中的函数。
>>> series.apply(np.log) London 2.995732 New York 3.044522 Helsinki 2.484907 dtype: float64