maxframe.dataframe.groupby.GroupBy.apply#

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

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

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

虽然 apply 是一种非常灵活的方法,但它的缺点是使用起来可能比使用更具体的方法(如 aggtransform)慢很多。Pandas 提供了许多针对特定用途比 apply 更快的方法,因此在使用 apply 之前应优先尝试这些方法。

参数:
  • func (callable) -- 一个可调用对象,其第一个参数为一个 DataFrame,并返回一个 DataFrame、Series 或标量。此外,该可调用对象还可以接受位置和关键字参数。

  • output_type ({'dataframe', 'series'}, default None) -- 指定返回对象的类型。详见 Notes

  • dtypes (Series, default None) -- 指定返回 DataFrame 的数据类型。详见 Notes

  • dtype (numpy.dtype, default None) -- 指定返回 Series 的数据类型。详见 Notes

  • name (str, default None) -- 指定返回 Series 的名称。详见 Notes

  • index (Index, default None) -- 指定返回对象的索引。详见 Notes

  • skip_infer (bool, default False) -- 当未指定 dtypes 或 output_type 时是否推断数据类型。

  • prepend_index_group_keys (bool, default False) -- 如果为 True,则当 group_keys=True 时,返回的 DataFrame 或 Series 的索引将自动包含组键(如果 as_index=True)或组索引(如果 as_index=False)。 .. 注意:: 在未来的版本中,prepend_index_group_keys 将默认设置为 True, 如果该参数被设置为 False,将会显示警告。为了确保您的代码在未来的版本中正常工作, 请将其设置为 True,并在索引参数或 func 的类型注解中移除组索引。

  • args (tuple and dict) -- 传递给 func 的可选位置和关键字参数。

  • kwargs (tuple and dict) -- 传递给 func 的可选位置和关键字参数。

返回:

应用的

返回类型:

Series or DataFrame

参见

pipe

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

aggregate

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

transform

将函数逐列应用于 GroupBy 对象。

Series.apply

将函数应用于 Series。

DataFrame.apply

将函数应用于 DataFrame 的每一行或每一列。

备注

在确定输出数据类型和返回值形状时,MaxFrame 会尝试将 func 应用于一个模拟的分组对象,此时 apply 调用可能会失败。如果发生这种情况,你需要在 output_type 中指定 apply 调用的类型(DataFrame 或 Series)。

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

  • 对于 Series 输出,您需要指定输出 Series 的 dtypename