Dataframe.groupby(by=None, axis=0, level=None, as_index=True, sort=True, group_keys=True,
squeeze=NoDefault.no_default, observed=False, dropna=True)
参数解释:
- by :接收映射、函数、标签或标签列表;用于确定 groupby 的组。 如果 by 是一个函数,它会在对象索引的每个值上调用。 如果传递了 dict 或 Series,则 Series 或 dict VALUES 将用于确定组(首先对齐 Series 的值;请参阅 .align() 方法)。 如果传递了 ndarray,则按原样使用这些值来确定组。 标签或标签列表可以通过 self 中的列传递给 group。
- axis : 接收 0/1;用于表示沿行(0)或列(1)分割。
- level : 接收int、级别名称或序列,默认为None;如果轴是一个多索引(层次化),则按一个或多个特定级别分组。
- as_index:接收布尔值,默认Ture;Ture则返回以组标签为索引的对象,False则不以组标签为索引。
- sort:接收布尔值,默认Ture;对组键进行排序。 关闭此功能可获得更好的性能。 请注意,这不会影响每个组内的观察顺序。 Groupby 保留每个组中行的顺序。
- group_keys:接收布尔值,默认Ture;调用 apply 时,将组键添加到索引以识别片段。
- squeeze:接收布尔值,默认False;如果可能,减少返回类型的维数,否则返回一致的类型
- observed:接收布尔值,默认False;这仅适用于任何组是分类的情况。 如果为 True:仅显示分类组的观察值。 如果为 False:显示分类组的所有值。
- dropna:接收布尔值,默认Ture;如果为 True,并且组键包含 NA 值,则 NA 值和行/列将被删除。 如果为 False,NA 值也将被视为组中的键
1. 基本用法:
2. 多索引操作:
3. 参数by的用法:
接收映射、函数、标签或标签列表;用于确定 groupby 的组
4. 参数dropna 的用法
如果为 True,并且组键包含 NA 值,则 NA 值和行/列将被删除。 如果为 False,NA 值也将被视为组中的键
5. 参数sort的用法:
5. 方法 get_group()的使用
可以获取group分组后的某一组
6. 属性groups的用法
7. 使用索引级别和列对 Dataframe 进行分组
8. 遍历group组
8. 使用Aggregation聚合函数操作group组
如您所见,聚合结果将具有组名称作为沿分组轴的新索引。 在多个键的情况下,默认情况下结果是 MultiIndex,但可以使用 as_index 选项更改:
请注意,您可以使用 reset_index 函数来实现与列名存储在生成的 MultiIndex 中相同的结果:
9. 使用size方法展示group组的大小
10 聚合函数是减少返回对象维度的函数。 下表列出了一些常见的聚合函数:
| Function | Description |
|---|---|
| mean() | Compute mean of groups |
| sum() | Compute sum of group values |
| size() | Compute group sizes |
| count() | Compute count of group |
| std() | Standard deviation of groups |
| var() | Compute variance of groups |
| sem() | Standard error of the mean of groups |
| describe() | Generates descriptive statistics |
| first() | Compute first of group values |
| last() | Compute last of group values |
| nth() | Take nth value, or a subset if n is a list |
| min() | Compute min of group values |
| max() | Compute max of group values |



