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


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