📅  最后修改于: 2023-12-03 14:45:02.920000             🧑  作者: Mango
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
方法计算各个学科的平均成绩。
与计算平均值相似,可以使用min
和max
方法分别计算各个学科的最小值和最大值。代码如下:
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计算一列的平均值、最小值和最大值,希望对大家有所帮助。