用法:
Series.groupby(by=None, group_keys=True, sort=None, observed=None, dropna=None, **kwargs)
使用映射器或按一系列列对系列进行分组。
此文档字符串是从 pandas.core.series.Series.groupby 复制而来的。
可能存在与 Dask 版本的一些不一致之处。
groupby 操作涉及拆分对象、应用函数和组合结果的某种组合。这可用于对大量数据进行分组并在这些组上进行计算操作。
- by:映射、函数、标签或标签列表
用于确定 groupby 的组。如果
by
是一个函数,它会在对象索引的每个值上调用。如果传递了 dict 或 Series,则 Series 或 dict VALUES 将用于确定组(Series 的值首先对齐;参见.align()
方法)。如果传递了长度等于所选轴的列表或 ndarray(请参阅 groupby user guide ),则使用这些值 as-is 来确定组。标签或标签列表可以通过self
中的列传递给分组。请注意,元组被解释为(单个)键。- axis:{0 或 ‘index’,1 或 ‘columns’},默认 0(Dask 中不支持)
沿行 (0) 或列 (1) 拆分。
- level:int, level name, or sequence of such, default None (在 Dask 中不支持)
如果轴是 MultiIndex(分层),则按特定级别或多个级别分组。
- as_index:bool,默认 True(Dask 中不支持)
对于聚合输出,返回以组标签为索引的对象。仅与 DataFrame 输入相关。 as_index=False 实际上是 “SQL-style” 分组输出。
- sort:布尔值,默认为真
对组键进行排序。关闭此函数可获得更好的性能。请注意,这不会影响每组内的观察顺序。 Groupby 保留每个组内的行顺序。
- group_keys:布尔值,默认为真
调用 apply 时,将组键添加到索引以识别片段。
- squeeze:bool,默认 False(在 Dask 中不支持)
如果可能,减少返回类型的维数,否则返回一致的类型。
- observed:布尔值,默认为 False
这仅适用于任何 groupers 是分类的。如果为真:仅显示分类分组的观察值。如果为 False:显示分类分组的所有值。
- dropna:布尔值,默认为真
如果为 True,并且组键包含 NA 值,则 NA 值连同行/列将被删除。如果为 False,NA 值也将被视为组中的键。
- 系列分组
返回包含有关组的信息的 groupby 对象。
参数:
返回:
注意:
有关更详细的用法和示例,请参阅user guide,包括将对象拆分为组、遍历组、选择组、聚合等。
例子:
>>> ser = pd.Series([390., 350., 30., 20.], ... index=['Falcon', 'Falcon', 'Parrot', 'Parrot'], name="Max Speed") >>> ser Falcon 390.0 Falcon 350.0 Parrot 30.0 Parrot 20.0 Name: Max Speed, dtype: float64 >>> ser.groupby(["a", "b", "a", "b"]).mean() a 210.0 b 185.0 Name: Max Speed, dtype: float64 >>> ser.groupby(level=0).mean() Falcon 370.0 Parrot 25.0 Name: Max Speed, dtype: float64 >>> ser.groupby(ser > 100).mean() Max Speed False 25.0 True 370.0 Name: Max Speed, dtype: float64
按索引分组
我们可以使用
level
参数对分层索引的不同级别进行分组:>>> arrays = [['Falcon', 'Falcon', 'Parrot', 'Parrot'], ... ['Captive', 'Wild', 'Captive', 'Wild']] >>> index = pd.MultiIndex.from_arrays(arrays, names=('Animal', 'Type')) >>> ser = pd.Series([390., 350., 30., 20.], index=index, name="Max Speed") >>> ser Animal Type Falcon Captive 390.0 Wild 350.0 Parrot Captive 30.0 Wild 20.0 Name: Max Speed, dtype: float64 >>> ser.groupby(level=0).mean() Animal Falcon 370.0 Parrot 25.0 Name: Max Speed, dtype: float64 >>> ser.groupby(level="Type").mean() Type Captive 210.0 Wild 185.0 Name: Max Speed, dtype: float64
我们还可以通过定义
dropna
参数来选择是否在组键中包含NA
,默认设置为True
。>>> ser = pd.Series([1, 2, 3, 3], index=["a", 'a', 'b', np.nan]) >>> ser.groupby(level=0).sum() a 3 b 3 dtype: int64
>>> ser.groupby(level=0, dropna=False).sum() a 3 b 3 NaN 3 dtype: int64
>>> arrays = ['Falcon', 'Falcon', 'Parrot', 'Parrot'] >>> ser = pd.Series([390., 350., 30., 20.], index=arrays, name="Max Speed") >>> ser.groupby(["a", "b", "a", np.nan]).mean() a 210.0 b 350.0 Name: Max Speed, dtype: float64
>>> ser.groupby(["a", "b", "a", np.nan], dropna=False).mean() a 210.0 b 350.0 NaN 20.0 Name: Max Speed, dtype: float64
相关用法
- Python dask.dataframe.Series.gt用法及代码示例
- Python dask.dataframe.Series.ge用法及代码示例
- Python dask.dataframe.Series.apply用法及代码示例
- Python dask.dataframe.Series.clip用法及代码示例
- Python dask.dataframe.Series.prod用法及代码示例
- Python dask.dataframe.Series.fillna用法及代码示例
- Python dask.dataframe.Series.to_frame用法及代码示例
- Python dask.dataframe.Series.sum用法及代码示例
- Python dask.dataframe.Series.dropna用法及代码示例
- Python dask.dataframe.Series.repartition用法及代码示例
- Python dask.dataframe.Series.mod用法及代码示例
- Python dask.dataframe.Series.count用法及代码示例
- Python dask.dataframe.Series.append用法及代码示例
- Python dask.dataframe.Series.add用法及代码示例
- Python dask.dataframe.Series.pow用法及代码示例
- Python dask.dataframe.Series.last用法及代码示例
- Python dask.dataframe.Series.nunique用法及代码示例
- Python dask.dataframe.Series.isin用法及代码示例
- Python dask.dataframe.Series.replace用法及代码示例
- Python dask.dataframe.Series.describe用法及代码示例
注:本文由纯净天空筛选整理自dask.org大神的英文原创作品 dask.dataframe.Series.groupby。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。