mars.dataframe.groupby.GroupBy.apply#

GroupBy.apply(func, *args, output_type=None, dtypes=None, dtype=None, name=None, index=None, skip_infer=None, **kwargs)#

按组应用函数 func 并将结果合并在一起。

传递给 apply 的函数必须将数据框作为第一个参数,并返回一个 DataFrame、Series 或标量。 apply 将负责将结果重新组合成一个单一的数据框或系列。因此, apply 是一种高度灵活的分组方法。

虽然 apply 是一个非常灵活的方法,但它的缺点是使用起来可能比使用更具体的方法如 aggtransform 慢很多。Pandas 提供了许多方法,这些方法在特定用途中比使用 apply 要快得多,因此在使用 apply 之前,请尽量使用这些方法。

Parameters
  • func (callable) – 一个可调用对象,它以数据框作为其第一个参数,并返回数据框、系列或标量。此外,该可调用对象可以接受位置参数和关键字参数。

  • output_type ({'dataframe', 'series'}, 默认值 None) – 指定返回对象的类型。详见 说明

  • dtypes (Series, 默认值为 None) – 指定返回的 DataFrames 的数据类型。有关更多详细信息,请参见 说明

  • dtype (numpy.dtype, 默认为 None) – 指定返回 Series 的数据类型。有关更多详细信息,请参见 备注

  • name (str, default None) – 指定返回的 Series 的名称。有关更多详细信息,请参见 Notes

  • index (Index, 默认 None) – 指定返回对象的索引。有关更多详细信息,请参见 说明

  • skip_infer (bool, 默认值为 False) – 当未指定 dtypes 或 output_type 时,是否推断数据类型。

  • args (元组和字典) – 可选的位置参数和关键字参数,传递给func

  • kwargs (元组和字典) – 传递给 func 的可选位置参数和关键字参数。

Returns

应用的

Return type

序列数据框

另请参阅

pipe

对整个 GroupBy 对象应用函数,而不是对每个组应用。

aggregate

将聚合函数应用于GroupBy对象。

transform

对GroupBy对象逐列应用函数。

Series.apply

将一个函数应用于一个系列。

DataFrame.apply

对DataFrame的每一行或每一列应用一个函数。

备注

在决定输出数据类型和返回值的形状时,Mars 将尝试将 func 应用到一个模拟的分组对象上,而 apply 调用可能会失败。当这种情况发生时,您需要在 output_type 中指定 apply 调用的类型(DataFrame 或 Series)。

  • 对于DataFrame输出,您需要指定一个列表或一个pandas系列作为 dtypes 的输出DataFrame。index 的输出也可以被指定。

  • 对于系列输出,您需要指定 dtypename 的输出系列。