Logo
Section 1 / 8

groupby 函数

学习如何使用Pandas的groupby函数进行数据分析。

导入

groupby 函数

学习如何使用Pandas的groupby函数进行数据分析。

到目前为止,我们已经学习了使用 Pandas 进行数据清洗、操作和处理。Pandas 也是一个强大的数据分析库。在本章中,我们将介绍可用于分析表格数据的 Pandas 函数。

数据分析

数据分析可以被定义为:从现有数据中推断洞察、发现有用信息并得出结论的过程。它主要用于支持决策过程,或在构建机器学习模型之前对数据进行探索。

在本课中,我们将使用一个名为 grocery 的新数据集,该数据集包含某杂货店部分商品的每日销售数量。我们先快速查看一下这个数据集的内容。

1import pandas as pd 2 3grocery = pd.read_csv("grocery.csv") 4 5print("DataFrame 的大小:") 6print(grocery.shape) 7 8print("\n列名如下:") 9print(list(grocery.columns)) 10 11print("\n前五行数据:") 12print(grocery.head())

数据分析中最常用的函数之一是 groupby 函数。它根据指定列中的不同值对观测数据(即行)进行分组。假设我们有一个 DataFrame,其中包含某零售店商品的销售信息,每种商品属于某个商品类别,这一信息记录在 product_group 列中。通过使用 groupby 函数,我们可以按照商品所属的类别对商品进行分组,然后计算多种聚合统计量,例如平均商品价格、每日总销售额等。

如何使用 groupby 函数

使用 groupby 函数只需传入用于分组的列名作为参数,随后系统会根据该列的不同取值将行数据进行分组。下图展示了 groupby 函数的工作原理:

groupby 函数虽然创建了分组,但如果不进行聚合操作,这些分组本身不会输出任何有用信息。例如,在上图中,如果我们对 price 列应用 mean 函数,就可以计算出每个商品类别的平均价格。下面我们就在 grocery 数据集上执行这一操作:

1import pandas as pd 2 3grocery = pd.read_csv("grocery.csv") 4 5print(grocery.groupby("product_group").mean())

如上输出所示,当完成分组并应用 mean 函数后,Pandas 会对所有数值型列计算均值。因此,我们也能看到各商品类别的平均销售数量。但“平均商品编码”没有实际意义,因为商品编码仅作为标识使用。

如果我们只关心平均价格,可以在应用 groupby 函数前先选择相关列。例如,在以下代码块的第 5 行中,我们首先从 grocery 中选取 product_group 和 price 两列,然后按 product_group 列对数据进行分组,最后应用 mean 函数,得到每个商品类别的平均价格。

1import pandas as pd 2 3grocery = pd.read_csv("grocery.csv") 4 5print(grocery[["product_group","price"]].groupby("product_group").mean())

现在我们只看到每个商品类别中商品的平均价格。

使用 Pandas 处理缺失值

增强 groupby 函数