返回

Pandas groupby() 与聚合函数的完美结合

见解分享

利用 Pandas 的 GroupBy 和聚合函数探索数据

数据分组的力量

在处理庞大的数据集时,将数据组织成有意义的组至关重要。Pandas 的 GroupBy 函数提供了这种分组能力,让我们能够根据一个或多个列对数据进行划分。有了它,我们可以轻松识别模式、发现趋势,并对数据进行深入分析。

聚合函数:从数据中提取见解

聚合函数是与 GroupBy 携手并进的强大工具。它们允许我们从每个组中提取汇总统计信息,例如平均值、总和、最小值和最大值。通过结合 GroupBy 和聚合函数,我们可以将杂乱无章的数据转化为可操作的见解,揭示数据的内在结构。

案例研究:按性别分组销售额

假设我们有一个包含销售数据的电子表格,其中包括国家、产品和销售额列。使用 Pandas,我们可以按国家分组销售额,并计算每个国家的总销售额:

import pandas as pd

sales_data = pd.DataFrame({
    "Country": ["USA", "USA", "UK", "UK", "France", "France"],
    "Product": ["A", "B", "A", "B", "A", "B"],
    "Sales": [100, 200, 50, 100, 150, 250]
})

country_sales = sales_data.groupby("Country")["Sales"].sum()

print(country_sales)

结果:

Country
France    400
UK        150
USA       300
Name: Sales, dtype: int64

这告诉我们,法国的总销售额最高,其次是美国,然后是英国。

案例研究:按学科分组成绩

现在,让我们考虑另一个示例。假设我们有一个包含学生成绩的数据框,其中包含性别、科目和成绩列。我们可以使用 GroupBy 和聚合函数按性别分组成绩,并计算每个性别的平均成绩:

import pandas as pd

grades_data = pd.DataFrame({
    "Gender": ["Male", "Male", "Female", "Female", "Male", "Female"],
    "Subject": ["Math", "Science", "Math", "Science", "Science", "Math"],
    "Score": [90, 80, 85, 95, 80, 90]
})

gender_scores = grades_data.groupby("Gender")["Score"].mean()

print(gender_scores)

结果:

Gender
Female    87.5
Male      85.0
Name: Score, dtype: float64

由此,我们得知女生的平均成绩高于男生。

常见的 GroupBy 和聚合函数

以下是常用的 GroupBy 和聚合函数列表:

  • GroupBy 函数
    • groupby(by)
    • groupby(by, axis=1)
  • 聚合函数
    • count()
    • mean()
    • std()
    • sum()
    • max()
    • min()

常见问题解答

  1. 什么是 GroupBy 函数?
    GroupBy 函数根据一个或多个列将数据划分为组。

  2. 聚合函数有什么用?
    聚合函数从每个组中提取汇总统计信息,例如平均值和总和。

  3. 如何将 GroupBy 与聚合函数结合使用?
    将 GroupBy 对象传递给聚合函数即可,例如 df.groupby("column").agg("function")。

  4. 我能用 GroupBy 和聚合函数做什么?
    您可以识别模式、发现趋势,并执行各种数据分析任务。

  5. GroupBy 和聚合函数有什么限制?
    当数据集中有大量唯一值时,GroupBy 可能会很慢。

结论

Pandas 的 GroupBy 和聚合函数是数据分析的有力工具。它们使我们能够组织和探索数据,从杂乱的数据中提取宝贵的见解。通过结合这两个强大的功能,我们可以深入了解数据,揭示隐藏的趋势和模式。