dask_expr._groupby.SeriesGroupBy.apply
dask_expr._groupby.SeriesGroupBy.apply¶
- SeriesGroupBy.apply(func, *args, meta=_NoDefault.no_default, shuffle_method=None, **kwargs)¶
pandas GroupBy.apply 的并行版本
这模仿了 pandas 版本,除了以下几点:
如果分组器与索引不一致,则会导致完全洗牌。每个组内的行顺序可能不会被保留。
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.DataFrame
或pd.Series
,其数据类型和列名与输出匹配。此元数据对于 dask dataframe 中的许多算法正常工作是必要的。为了便于使用,还提供了一些替代输入。除了DataFrame
之外,还可以提供{name: dtype}
的字典或(name, dtype)
的可迭代对象(注意名称的顺序应与列的顺序匹配)。除了系列之外,还可以使用(name, dtype)
的元组。如果未提供,dask 将尝试推断元数据。这可能会导致意外结果,因此建议提供meta
。有关更多信息,请参阅dask.dataframe.utils.make_meta
。
- 返回
- 应用根据列关键字,可以是 Series 或 DataFrame