maxframe.dataframe.DataFrame.groupby#

DataFrame.groupby(by=None, level=None, as_index=True, sort=True, group_keys=True, dropna=True)#

使用映射器或列的 Series 对 DataFrame 进行分组。

groupby 操作涉及拆分对象、应用函数和组合结果的某种组合。这可以用于对大量数据进行分组,并对这些组执行计算操作。

参数:
  • by (mapping, function, label, or list of labels) -- 用于确定 groupby 的分组方式。如果 by 是一个函数,则会对对象索引的每个值调用该函数。如果传递的是字典或 Series,则使用 Series 或字典的值来确定分组(Series 的值会先对齐;请参见 .align() 方法)。如果传递的是 ndarray,则直接使用其值来确定分组。可以传递标签或标签列表以按 self 中的列进行分组。请注意,元组会被解释为一个(单个)键。

  • as_index (bool, default True) -- 对于聚合输出,返回以组标签作为索引的对象。仅对 DataFrame 输入有效。as_index=False 实际上是“SQL 风格”的分组输出。

  • sort (bool, default True) -- 对组键进行排序。关闭此选项可获得更好的性能。请注意,这不会影响每个组内观测值的顺序。Groupby 会保留每个组内行的顺序。

  • group_keys (bool) -- 调用 apply 时,将组键添加到索引中以标识各个片段。

  • dropna (bool, default True) -- 如果为 True(默认),则从分组中排除分组列中的 NA 值。如果为 False,则将 NA 值视为有效分组。

备注

MaxFrame 仅支持 axis=0 的 groupby。group_keys 的默认值将根据本地 pandas 库的版本决定,pandas 2.0 及以上版本默认为 True。

返回:

返回一个包含有关分组信息的 groupby 对象。

返回类型:

DataFrameGroupBy

参见

resample

用于时间序列频率转换和重采样的便捷方法。

示例

>>> import maxframe.dataframe as md
>>> df = md.DataFrame({'Animal': ['Falcon', 'Falcon',
...                               'Parrot', 'Parrot'],
...                    'Max Speed': [380., 370., 24., 26.]})
>>> df.execute()
   Animal  Max Speed
0  Falcon      380.0
1  Falcon      370.0
2  Parrot       24.0
3  Parrot       26.0
>>> df.groupby(['Animal']).mean().execute()
        Max Speed
Animal
Falcon      375.0
Parrot       25.0