當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。