分组聚合
import numpy as np
import pandas as pd
from pandas import Series
from pandas import DataFrame
1
2
3
4
2
3
4
Splitting-Applying-Combining
df.groupby(by=None, axis=0, level=None, as_index=True, sort=True, group_keys=True, squeeze=False, observed=False, **kwargs)
by:mapping, function, label, or list of labels。用于确定 groupby 的组。如果 by 是一个函数,那么会调用对象索引的每个值。 如果传递了一个 dict 或 Series,则将使用 Series 或 dict 的值来确定组。 一个 str 或者一个 strs 列表可以通过自己的列传递给 group。
axis:轴,int 值,默认为 0。
level:int,level name,or sequence of such,默认为 None。如果 axis 是一个 MultiIndex(分层),则按特定的级别分组。
as_index:bool,默认为 True。对于聚合输出,返回带有组标签的对象作为索引。as_index=False 实际上是“SQL 风格”分组输出。
sort:bool,默认为 True。排序。关闭此功能以获得更好的性能。
group_keys:bool,默认为 True。当调用 apply 时,添加 group key 来索引来识别片断。boolean 值,默认 True。
squeeze:bool,默认为 False。尽可能减少返回类型的维度,否则返回一致的类型。
observed:bool,默认为 False。只适用于有 group 是 Categoricals 的情况。
df = pd.DataFrame({'Animal': ['Falcon', 'Falcon',
'Parrot', 'Parrot'],
'Max Speed': [380., 370., 24., 26.]})
df
1
2
3
4
2
3
4
Animal | Max Speed | |
---|---|---|
0 | Falcon | 380.0 |
1 | Falcon | 370.0 |
2 | Parrot | 24.0 |
3 | Parrot | 26.0 |
df.groupby(['Animal']).mean()
1
Max Speed | |
---|---|
Animal | |
Falcon | 375.0 |
Parrot | 25.0 |
上次更新: 2023/11/01, 03:11:44