Pandas groupby() 与聚合函数的完美结合
2023-11-02 09:56:21
利用 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()
常见问题解答
-
什么是 GroupBy 函数?
GroupBy 函数根据一个或多个列将数据划分为组。 -
聚合函数有什么用?
聚合函数从每个组中提取汇总统计信息,例如平均值和总和。 -
如何将 GroupBy 与聚合函数结合使用?
将 GroupBy 对象传递给聚合函数即可,例如 df.groupby("column").agg("function")。 -
我能用 GroupBy 和聚合函数做什么?
您可以识别模式、发现趋势,并执行各种数据分析任务。 -
GroupBy 和聚合函数有什么限制?
当数据集中有大量唯一值时,GroupBy 可能会很慢。
结论
Pandas 的 GroupBy 和聚合函数是数据分析的有力工具。它们使我们能够组织和探索数据,从杂乱的数据中提取宝贵的见解。通过结合这两个强大的功能,我们可以深入了解数据,揭示隐藏的趋势和模式。