pandas 得到 groupby 的平均值

作者:编程家 分类: pandas 时间:2025-06-16

使用 Pandas 进行数据分析时,经常会遇到需要对数据进行分组并计算分组后的平均值的情况。Pandas 中的 `groupby` 函数能够满足这一需求。本文将介绍如何使用 Pandas 的 `groupby` 函数来计算分组平均值,并通过一个案例来说明其使用方法。

什么是分组平均值?

在数据分析中,我们经常需要根据某个特征将数据进行分组,并对每个分组内的数据进行聚合计算。其中,计算分组的平均值是一种常见的统计方法。通过计算每个分组内数据的平均值,我们可以了解不同分组之间的差异,并从中发现数据的规律和特点。

使用 Pandas 进行分组计算

在 Pandas 中,`groupby` 函数用于根据某个或多个特征对数据进行分组。通过 `groupby` 函数,我们可以将数据按照指定的特征进行分组,并对每个分组内的数据进行聚合计算。其中一个常见的聚合计算就是计算分组平均值。

下面是一个简单的示例,展示了如何使用 `groupby` 函数来计算分组平均值:

python

import pandas as pd

# 创建一个包含姓名、科目和成绩的数据表

data = {'姓名': ['张三', '李四', '王五', '赵六', '张三', '李四', '王五', '赵六'],

'科目': ['语文', '语文', '语文', '语文', '数学', '数学', '数学', '数学'],

'成绩': [80, 90, 70, 85, 95, 85, 75, 80]}

df = pd.DataFrame(data)

# 按照姓名进行分组,并计算每个分组的平均成绩

avg_score = df.groupby('姓名')['成绩'].mean()

print(avg_score)

在上述代码中,我们首先创建了一个包含姓名、科目和成绩的数据表。然后,我们使用 `groupby` 函数,根据姓名对数据进行分组。最后,我们通过指定 `['成绩']` 来计算每个分组的平均成绩。运行结果将会输出每个姓名对应的平均成绩。

案例分析:学生成绩统计

假设我们有一份包含学生姓名、科目和成绩的数据表,我们希望根据学生姓名对数据进行分组,并计算每个学生的平均成绩。

python

import pandas as pd

# 创建一个包含姓名、科目和成绩的数据表

data = {'姓名': ['张三', '李四', '王五', '赵六', '张三', '李四', '王五', '赵六'],

'科目': ['语文', '语文', '语文', '语文', '数学', '数学', '数学', '数学'],

'成绩': [80, 90, 70, 85, 95, 85, 75, 80]}

df = pd.DataFrame(data)

# 按照姓名进行分组,并计算每个分组的平均成绩

avg_score = df.groupby('姓名')['成绩'].mean()

print(avg_score)

运行上述代码,我们可以得到以下结果:

姓名

张三 87.5

李四 87.5

王五 72.5

赵六 82.5

Name: 成绩, dtype: float64

从结果中可以看出,根据学生姓名进行分组后,我们得到了每个学生的平均成绩。例如,张三的平均成绩为 87.5,李四的平均成绩也为 87.5。

通过本文的介绍,我们了解了如何使用 Pandas 的 `groupby` 函数来计算分组的平均值。通过分组平均值的计算,我们可以更好地理解数据的特点和规律,为后续的数据分析和决策提供支持。在实际应用中,我们可以根据自己的需求和数据特点,灵活运用 `groupby` 函数,并结合其他统计方法,进行更加全面和深入的数据分析。

希望本文能够帮助到大家,谢谢阅读!