📌  相关文章
📜  Pandas – GroupBy 一列并获取平均值、最小值和最大值(1)

📅  最后修改于: 2023-12-03 14:45:02.920000             🧑  作者: Mango

Pandas – GroupBy 一列并获取平均值、最小值和最大值

Pandas是一种开源的数据分析和数据操作工具,常用于数据科学计算任务。其中,GroupBy是一项常用功能,它能够将数据按照特定的列分组,并对分组数据进行汇总计算。本文将介绍如何使用Pandas的GroupBy功能分组计算一列的平均值、最小值和最大值。

准备工作

在开始使用Pandas的GroupBy之前,请确保已安装好Pandas和NumPy库。可以使用以下命令进行安装:

!pip install pandas numpy
示例数据集

下面定义一个示例数据集,以便进行演示:

import pandas as pd

data = {'Name': ['John', 'Mark', 'Sara', 'John', 'Mark', 'Sara'],
        'Subject': ['Math', 'Math', 'Math', 'Science', 'Science', 'Science'],
        'Marks': [80, 76, 85, 90, 92, 88]}
df = pd.DataFrame(data)
print(df)

输出:

   Name  Subject  Marks
0  John     Math     80
1  Mark     Math     76
2  Sara     Math     85
3  John  Science     90
4  Mark  Science     92
5  Sara  Science     88

该数据集包括三列:Name、Subject和Marks,其中Name代表学生姓名,Subject代表学科,Marks代表成绩。

分组计算平均值

使用GroupBy对数据集按照学科进行分组,并计算各个学科的平均成绩。代码如下:

avg_marks = df.groupby('Subject')['Marks'].mean()
print(avg_marks)

输出:

Subject
Math       80.333333
Science    90.000000
Name: Marks, dtype: float64

首先,我们使用groupby方法将数据集按照Subject列进行分组,并取出Marks列。然后,使用mean方法计算各个学科的平均成绩。

分组计算最小值和最大值

与计算平均值相似,可以使用minmax方法分别计算各个学科的最小值和最大值。代码如下:

min_marks = df.groupby('Subject')['Marks'].min()
max_marks = df.groupby('Subject')['Marks'].max()

print(min_marks)
print(max_marks)

输出:

Subject
Math       76
Science    88
Name: Marks, dtype: int64

Subject
Math       85
Science    92
Name: Marks, dtype: int64
总结

使用Pandas的GroupBy功能可以方便地将数据集按照特定列进行分组,并对分组数据进行各种计算。本文介绍了如何使用GroupBy计算一列的平均值、最小值和最大值,希望对大家有所帮助。