AI News HubLIVE
站内改写

Pandas GroupBy 详解及示例

本文通过零售销售数据集,详细介绍了 Pandas GroupBy 的各种操作,包括基本聚合、多列分组、排序、transform、filter、apply 以及日期分组等,并提供了实用示例。

文章情报

研究者进阶

要点

  • 使用 GroupBy 可以按一个或多个类别对数据进行分组并执行聚合计算。
  • 支持多种聚合函数,如 sum、mean、count,以及自定义命名聚合。
  • transform 和 filter 方法可在不减少行数的情况下添加分组级特征或过滤分组。
  • pd.Grouper 能更方便地对时间序列数据进行按月等频率分组。

为什么重要

这条新闻值得关注,因为使用 GroupBy 可以按一个或多个类别对数据进行分组并执行聚合计算。

技术影响

可能影响研究路线、评测方法、开源复现和后续产品化方向。

Pandas 是 Python 中最流行的数据分析库之一,它提供了简洁而强大的工具来清洗、重塑、汇总和探索结构化数据。其中,GroupBy 功能尤为突出,它允许用户根据一个或多个类别对行进行分组,从而高效地回答诸如“各区域总销售额是多少?”“每个产品类别的平均订单金额是多少?”等问题。本教程将使用一个小型零售销售数据集,通过实际示例逐步演示 GroupBy 的各种操作。我们首先创建包含订单 ID、区域、类别、销售代表、数量、单价、折扣和订单日期的数据集,并计算毛销售额和净销售额。基本语法为 df.groupby("region")["net_sales"].sum(),用于计算每个区域的净销售额总和。使用 as_index=False 参数可以使分组列保留为普通列,方便后续处理。通过 agg() 方法可以对同一列应用多个聚合函数,如求和、均值、最小值、最大值和计数。命名聚合(Named Aggregation)允许自定义输出列名,提高可读性。多列分组可以同时按区域和类别进行分析,得到更细致的视图。排序功能帮助识别最高或最低值。size()count() 的区别在于:size() 计算组内所有行数(包括缺失值),而 count() 只统计非缺失值。transform() 方法用于计算分组级别的值并添加回原始 DataFrame,适用于特征工程。filter() 方法根据条件保留或移除整个组。apply() 提供最大灵活性,但效率较低。日期分组可以通过提取月份或使用 pd.Grouper 按频率分组,分析时间趋势。最后,结合 unstack() 可以创建透视表风格的摘要。掌握这些模式,可以快速解决实际数据分析问题。