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


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


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

用法:

Series.transform(func: Union[Callable, List[Callable]], axis: Union[int, str] = 0, *args: Any, **kwargs: Any) → Union[pyspark.pandas.series.Series, pyspark.pandas.frame.DataFrame]

调用 func 生成与 self 相同类型的转换值,并且与输入具有相同的轴长度。

注意

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

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

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

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

参数

func函数或列表

用于转换数据的函数或函数列表。

axisint,默认 0 或 ‘index’

目前只能设置为0。

*args

要传递给 func 的位置参数。

**kwargs

要传递给 func 的关键字参数。

返回

具有 self 的相同类型的实例,其长度必须与输入相同。

例子

>>> s = ps.Series(range(3))
>>> s
0    0
1    1
2    2
dtype: int64
>>> def sqrt(x) -> float:
...     return np.sqrt(x)
>>> s.transform(sqrt)
0    0.000000
1    1.000000
2    1.414214
dtype: float64

即使生成的实例必须与输入具有相同的长度,也可以提供多个输入函数:

>>> def exp(x) -> float:
...     return np.exp(x)
>>> s.transform([sqrt, exp])
       sqrt       exp
0  0.000000  1.000000
1  1.000000  2.718282
2  1.414214  7.389056

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

>>> s.transform([np.sqrt, np.exp])
       sqrt       exp
0  0.000000  1.000000
1  1.000000  2.718282
2  1.414214  7.389056

相关用法


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