dask.dataframe.groupby.DataFrameGroupBy.apply

dask.dataframe.groupby.DataFrameGroupBy.apply

DataFrameGroupBy.apply(func, *args, **kwargs)

pandas GroupBy.apply 的并行版本

这模仿了 pandas 版本,除了以下几点:

  1. 如果分组器与索引不一致,则会导致完全洗牌。每个组内的行顺序可能不会被保留。

  2. Dask 的 GroupBy.apply 不适用于聚合。对于自定义聚合,请使用 dask.dataframe.groupby.Aggregation

警告

Pandas 的 groupby-apply 可以用于应用任意函数,包括每个组产生一行的聚合。Dask 的 groupby-apply 将对每个组应用 func 一次,如果需要,会进行洗牌,以确保每个组包含在一个分区中。当 func 是一个缩减操作时,例如,你最终会得到每个组一行。要使用 Dask 应用自定义聚合,请使用 dask.dataframe.groupby.Aggregation

参数
func: 函数

要应用的函数

args, kwargs标量、延迟或对象

传递给函数的参数和关键字。

metapd.DataFrame, pd.Series, dict, iterable, tuple, optional

一个空的 pd.DataFramepd.Series,其数据类型和列名与输出匹配。此元数据对于 dask dataframe 中的许多算法正常工作是必要的。为了便于使用,还提供了一些替代输入。除了 DataFrame 之外,还可以提供 {name: dtype} 的字典或 (name, dtype) 的可迭代对象(注意名称的顺序应与列的顺序匹配)。除了系列之外,还可以使用 (name, dtype) 的元组。如果未提供,dask 将尝试推断元数据。这可能会导致意外结果,因此建议提供 meta。有关更多信息,请参阅 dask.dataframe.utils.make_meta

返回
应用根据列关键字,可以是 Series 或 DataFrame