用法:
DataFrame.apply(func, axis=0, broadcast=None, raw=False, reduce=None, args=(), meta='__no_default__', result_type=None, **kwds)
pandas.DataFrame.apply 的并行版本
这模仿了 Pandas 版本,但以下内容除外:
仅支持
axis=1
(并且必须明确指定)。用户应通过
meta
关键字提供输出元数据。
- func:函数
应用于每列/行的函数
- axis:{0 或 ‘index’,1 或 ‘columns’},默认 0
- 0 或 ‘index’:将函数应用于每一列(不支持)
- 1 或‘columns’:将函数应用于每一行
- meta:pd.DataFrame、pd.Series、dict、可迭代、元组、可选
与输出的 dtypes 和列名匹配的空
pd.DataFrame
或pd.Series
。此元数据对于 dask 数据帧中的许多算法起作用是必需的。为了便于使用,还提供了一些替代输入。可以提供{name: dtype}
的dict
或(name, dtype)
的可迭代对象,而不是DataFrame
(请注意,名称的顺序应与列的顺序匹配)。可以使用(name, dtype)
的元组代替系列。如果未提供,dask 将尝试推断元数据。这可能会导致意外结果,因此建议提供meta
。有关详细信息,请参阅dask.dataframe.utils.make_meta
。- args:元组
除了数组/系列之外,要传递给函数的位置参数
- Additional keyword arguments will be passed as keywords to the function:
- applied:Series或DataFrame
参数:
返回:
例子:
>>> import pandas as pd >>> import dask.dataframe as dd >>> df = pd.DataFrame({'x': [1, 2, 3, 4, 5], ... 'y': [1., 2., 3., 4., 5.]}) >>> ddf = dd.from_pandas(df, npartitions=2)
将函数应用于在
args
和kwargs
中按行传递额外参数:>>> def myadd(row, a, b=1): ... return row.sum() + a + b >>> res = ddf.apply(myadd, axis=1, args=(2,), b=1.5)
默认情况下,dask 尝试通过在一些假数据上运行您提供的函数来推断输出元数据。这在许多情况下效果很好,但有时可能很昂贵,甚至失败。为避免这种情况,您可以使用
meta
关键字手动指定输出元数据。这可以以多种形式指定,有关详细信息,请参阅dask.dataframe.utils.make_meta
。在这里,我们指定输出是一个名为
'x'
和 dtypefloat64
的系列:>>> res = ddf.apply(myadd, axis=1, args=(2,), b=1.5, meta=('x', 'f8'))
在元数据不变的情况下,也可以直接传入对象本身:
>>> res = ddf.apply(lambda row: row + 1, axis=1, meta=ddf)
相关用法
- Python dask.dataframe.DataFrame.applymap用法及代码示例
- Python dask.dataframe.DataFrame.append用法及代码示例
- Python dask.dataframe.DataFrame.any用法及代码示例
- Python dask.dataframe.DataFrame.add用法及代码示例
- Python dask.dataframe.DataFrame.all用法及代码示例
- Python dask.dataframe.DataFrame.astype用法及代码示例
- Python dask.dataframe.DataFrame.abs用法及代码示例
- Python dask.dataframe.DataFrame.align用法及代码示例
- Python dask.dataframe.DataFrame.assign用法及代码示例
- Python dask.dataframe.DataFrame.sub用法及代码示例
- Python dask.dataframe.DataFrame.mod用法及代码示例
- Python dask.dataframe.DataFrame.cummin用法及代码示例
- Python dask.dataframe.DataFrame.truediv用法及代码示例
- Python dask.dataframe.DataFrame.round用法及代码示例
- Python dask.dataframe.DataFrame.ne用法及代码示例
- Python dask.dataframe.DataFrame.partitions用法及代码示例
- Python dask.dataframe.DataFrame.to_bag用法及代码示例
- Python dask.dataframe.DataFrame.itertuples用法及代码示例
- Python dask.dataframe.DataFrame.count用法及代码示例
- Python dask.dataframe.DataFrame.memory_usage用法及代码示例
注:本文由纯净天空筛选整理自dask.org大神的英文原创作品 dask.dataframe.DataFrame.apply。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。