专题9 pandas数据统计 学案(含解析)2025届高中信息技术.DOCX
专题9pandas数据统计
学习目标
1.对DataFrame对象按列进行公式计算,描述DataFrame对象数据以字典中键为列的存储形式;
2.对每个键对应一列数据多个值进行切片,掌握取出不同数据区域内容的方法;
3.运用函数统计对象的平均值等操作,运用排序函数对数据进行有序排列;
4.运用groupby函数对数据进行分组的方法,并在分组的基础上进行数据统计.
Pandas有Series和DataFrame两种对象,这两种对象均有index和values属性,Series对象的values是一维的,DataFrame的values是二维的,因此DataFrame对象比Series对象多一个columns属性,可以理解为index表示行号,columns表示列名。pandas处理的对象主要是DataFrame,取出DataFrame中的一列,降维为Series对象,可以用list函数转换为列表,对某列的值进行切片,可以转换为一个数值。可以对记录选取、筛选和分组操作,灵活地区分不同类型的数据,可以对记录进行排序操作,实现数据的有序显示。可以对各条记录的字段进行遍历,统计符合要求字段值的数量、总和、平均值以及最值。
(2024年1月浙江省选考)某学院举行运动会,比赛设跳高、100米等项目,每个项目分男子组和女子组。现要进行报名数据处理和比赛成绩分析。请回答下列问题:
(1)运动会报名规则为:对于每个项目的男子组和女子组,每个专业最多各报5人(如“软件工程”专业在男子跳高项目中最多报5人)。软件工程专业的报名数据保存在DataFrame对象df中,如图a所示。若要编写Python程序检查该专业男子跳高项目报名是否符合规则,下列方法中,正确的是________(单选,填字母)。
A.从df中筛选出性别为“男”的数据dfs,再从dfs中筛选出项目为“跳高”的数据,判断筛选出的数据行是否超过5行
B.对df中数据按性别排序并保存到dfs中,再从dfs中筛选出项目为“跳高”的数据,判断筛选出的数据行是否超过5行
C.从df中筛选出项目为“跳高”的数据dfs,判断dfs中是否有连续5行以上的男生数据
(2)运动员比赛成绩的部分数据如图b所示。根据已有名次计算得,第1名至8名分别计9,7,6,5,4,3,2,1分,第8名之后计0分。实现上述功能的部分Python程序如下,请在程序中划线处填入合适的代码。
importpandasaspd
importmatplotlib.pyplotasplt
#读取如图b所示数据,保存到DataFrame对象df1中,代码略
f=[9,7,6,5,4,3,2,1]
foriinrange(0,len(df1)):
rank=df1.at[i,″名次″]#通过行、列标签取单个值
score=0
ifrank=8:
______________
df1.at[i,″得分″]=score
(3)根据上述df1中的得分数据,统计各专业总分,绘制如图c所示的柱形图,实现该功能的部分Python程序如下:
df2=dfl.groupby(″________″,as_index=False).sum()#分组求和
eq\x()
#设置绘图参数,代码略
plt.bar(x,y)
①请在程序中划线处填入合适的代码。
②程序的方框中应填入的正确代码为________(单选,填字母)
A.x=df1[″专业″]
y=df1[″总分″]
B.x=df2[″专业″]
y=df2[″得分″]
C.df1[″专业″]=″专业″
df1[″总分″]=″总分″
D.df2[″专业″]=″专业″
df2[″得分″]=″得分″
重难点1利用Pandas批量处理文件
Pandas主要功能是计算一个集合对象中某个字段的记录数量、总和、平均值和最值(最大值或最小值)。这个集合可以是通过筛选找到符合处理条件的数据(子集),也可以是通过分组,将某列相同字段值的记录组合在一起,形成一个个的分组,再分别统计各个分组的数量、和、平均值和最值。这些功能Excel软件也可以实现,但若是数据分布在多个数据文件时,Excel软件就要手工不断地打开数据,重复进行统计,而Pandas可以通过算法,利用循环结构,将这些操作让计算机自动完成。
例题小红收集了部分城市2021年全年每天PM2.5、PM10、CO浓度数据,每天的数据分别保存在以8位日期字符串命名的CSV文件中,部分文件如图a所示,每个文件记录了一天24小时的监测数据,示例如图b所示。
为统计分析城市A全年各月份PM2.5的月平均浓度(当月的日平均浓度的平均值),编写Python程序。请回答