Amb*_*us9 5 python logarithm dask
如果使用Dask应用功能在大型数据集的单列上计算对数,我该怎么做?
df_train.apply(lambda x: np.log1p(x), axis=1 , meta={'column_name':'float32'}).compute()
Run Code Online (Sandbox Code Playgroud)
数据集非常大(1.25亿行),我该怎么做?
您有几个选择:
就像 pandas 数据框如何使用 numpy 函数一样
import numpy as np
result = np.log1p(df.x)
Run Code Online (Sandbox Code Playgroud)
Dask 数据帧可以使用 dask 数组函数
import dask.array as da
result = da.log1p(df.x)
Run Code Online (Sandbox Code Playgroud)
但对于您的特定函数来说,可能不存在这样的 dask.array 函数。您始终可以使用map_partitions,在构成 dask 数据帧的所有 pandas 数据帧中应用您通常对 pandas 数据帧执行的任何功能
熊猫
result = f(df.x)
Run Code Online (Sandbox Code Playgroud)
Dask 数据框
result = df.x.map_partitions(f)
Run Code Online (Sandbox Code Playgroud)
您始终可以使用maporapply(axis=0)方法,但就像在 Pandas 中一样,这些方法通常对性能非常不利。
| 归档时间: |
|
| 查看次数: |
1476 次 |
| 最近记录: |