当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python pyspark Series.apply用法及代码示例


本文简要介绍 pyspark.pandas.Series.apply 的用法。

用法:

Series.apply(func: Callable, args: Sequence[Any] =(), **kwds: Any) → pyspark.pandas.series.Series

对 Series 的值调用函数。

可以是仅适用于系列的 Python 函数。

注意

此 API 执行该函数一次以推断可能昂贵的类型,例如,在聚合或排序后创建数据集时。

为避免这种情况,请在 func 中指定返回类型,例如,如下所示:

>>> def square(x) -> np.int32:
...     return x ** 2

pandas-on-Spark 使用返回类型提示并且不尝试推断类型。

参数

func函数

要应用的 Python 函数。请注意,返回类型的类型提示是必需的。

args元组

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

**kwds

传递给 func 的附加关键字参数。

返回

Series

例子

为每个城市创建一个具有典型夏季温度的系列。

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

通过定义一个函数并将其作为参数传递给 apply() 来对值进行平方。

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

定义一个需要额外位置参数的自定义函数,并使用 args 关键字传递这些额外参数

>>> def subtract_custom_value(x, custom_value) -> np.int64:
...     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) -> np.int64:
...     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 库中的函数

>>> def numpy_log(col) -> np.float64:
...     return np.log(col)
>>> s.apply(numpy_log)
London      2.995732
New York    3.044522
Helsinki    2.484907
dtype: float64

您可以省略类型提示并让pandas-on-Spark 推断其类型。

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

相关用法


注:本文由纯净天空筛选整理自spark.apache.org大神的英文原创作品 pyspark.pandas.Series.apply。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。