中小学教育资源及组卷应用平台
2025普通高中信息技术学业水平考试
优化集训11 pandas数据处理
1.下列关于数据的说法错误的是( )
A.数据整理的目的是对数据进行检测和修正
B.数据处理的核心是数据,数据的质量不影响数据分析的结果
C.数据重复往往在多数据源进行合并时出现
D.不同格式的数据通过转换可以将其值按照统一标准进行表示
2.下列有关Hadoop计算平台的说法中,不正确的是 ( )
A.Hadoop计算平台是一个可运行于规模计算机集群上的分布式系统基础架构
B.Hadoop计算平台适用于对静态数据进行处理
C.Hadoop计算平台主要包括Common公共库、HDFS、HBase、MapReduce等模块
D.Hadoop计算平台也适用于对流数据的实时处理
3.下列数据不适合运用批处理计算的是( )
A.全校上一次考试的成绩统计
B.微博上一季的热词统计
C.根据路况实时更新导航路线
D.某商品价格过去一年的浮动情况
4.不能实现选取df对象前5行数据记录的语句是( )
A.df.head() B.df.head(5)
C.df[0:5] D.df[5]
回答下列第5~7题。
5.某DataFrame对象df中包含“准考证号”“班级”“姓名”“文”“数学”…“总分”等10个数据列、多个数据行,能获取对象df第3个数据的“姓名”内容的语句有( )
①df[2,'姓名'] ②df.at[2,'姓名'] ③df[2]['姓名'] ④df['姓名'][2] ⑤df.姓名[2]
A.①②③ B.①②④
C.②④ D.②④⑤
6.如第5题对象df,能够降序排列输出总分大于等于600分的学生数据的代码组合是( )
①df=df.sort_values(″总分″,ascending=True)
②df=df.sort_values(″总分″,ascending=False)
③df=df[″总分″,>=600]
④df=df[df[″总分″]>=600]
⑤print(df)
A.①③⑤ B.①④⑤
C.②③⑤ D.②④⑤
7.如第5题对象df1,下列语句中,可以以班级为单位,统计出各班级“总分”的平均值的有( )
①df.groupby('班级').mean()
②df.groupby('总分').mean()
③df.groupby('班级')['总分'].mean()
④df.groupby('班级').总分.mean()
⑤df.groupby('班级').describe()
A.①②③④⑤ B.①②③⑤
C.①③④⑤ D.①②③
8.根据交通路况实时更新导航线路的应用场景中,下列处理方式中合理的是( )
A.选用针对静态数据的批处理计算
B.选用针对流数据的流计算
C.选用针对图结构数据的图计算
D.用统计分析软件提供的丰富的统计算法进行数据分析
9.下列有关数据可视化方法的说法,错误的是( )
A.要分析相等时间间隔下数据的发展趋势,可采用折线图
B.要显示各部分数据在总数据中的大小和比例关系,可采用饼图
C.要探究若干数据系列中各数值之间的关系,可采用柱形图
D.要比较每个数据相对中心的数值变化,可采用雷达图
10.下列关于大数据应用的说法,错误的是( )
A.随着大数据在各行各业的应用,数据成为核心资产
B.云计算对大数据的分析应用无太大帮助
C.大数据在电子商务领域的应用,为商业的振兴起到了推动作用
D.智能交通可以使交通运输服务和管理智能化
11.文本数据处理的主要步骤包括:
①结果呈现 ②特征提取 ③分词 ④数据分析
⑤文本数据获取
正确的顺序是( )
A.⑤②④①③ B.⑤③①④②
C.⑤①③②④ D.⑤③②④①
12.有如下Python程序段。
import pandas as pd
list=[['周欣怡','湖州',15,646],['王培新','杭州',16,598],['张佳明','杭州',16,609],['林逢春','嘉兴',15,547],['朱梁栋','湖州',16,588],['陈清瑞','嘉兴',15,571]]
inf=pd.DataFrame(list,columns=['姓名','地区','年龄','总分'])
print(inf)
print('_' 20)
print(inf.groupby('地区',as_index=True).mean())
执行该程序段后,输出的结果是 (单选,填字母)。
13.小明从某网站上收集了2022年4月部分生产资料市场价格变动情况数据,数据集保存在“shuju.xlsx”中,格式如图a所示。
图a
为分析相关类别生产资料的涨跌幅情况,小明编写了以下Python程序。
import pandas as pd
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei'] #正常显示中文字体
df=pd.read_excel(″shuju.xlsx″)
df[″涨跌幅″]=
(1)通过数据计算添加涨跌幅列,请在划线处填写实现的方式。
计算公式为:涨跌幅=(本期价格-上期价格)/本期价格 100。
(2)若要对表格中的数据进行分类统计,并求其平均涨跌幅。请完善以下代码:
g=df.groupby(″类别″,as_index=False)
df1=
df1=df1.sort_values(″涨跌幅″,ascending=False)
(3)根据上述操作结果,制作一份显示类别涨跌幅平均值的图表,其格式如图b所示。
各种类别对比分析图
图b
请完善以下代码。
plt.figure(figsize=(8,4))
plt.title(″各种类别对比分析图″)
plt.bar(① ,df1[″涨跌幅″],label='涨跌幅')
plt.xlabel(″类别″)
plt.ylabel(② )
plt.legend()
plt.show()
14.某市普通高中选课数据如下图所示,学生从技术、化学、生物等科目中选择三门作为高考选考科目,“1”表示已选择的选考科目。
图a
各学校技术选考人数对比
图b
为分析各学校的学生选科数据,编写了如下程序:
import pandas as pd
import matplotlib.pyplot as plt
plt.rc'font', {'family':'SimHei'}
plt.rcParams['axes.unicode_minus']=False
df=pd.read_csv(″xk73.csv″)
(1)若要了解市里所有选考技术的学生情况,请在划线处给出合适代码,筛选出有选技术科目的同学信息:
print( )
(2)使用Python编程分析每所学校各科目选考的人数(不同的学校代码表示不同的学校)。请在划线处填入合适的代码。
g=df.groupby(① ,as index=false) #按学校进行分组
s2=② #按学校分别统计各科目的选考人数
s2.sort_values(″技术″,ascending=False) #按技术选考人数进行降序排序
(3)若要做一个各学校技术选考人数的分析,添加如下程序段:
plt.figure(figsize=(10,5))
a=list(s2.学校代码)
plt.xticks(range(1en(s2.学校代码)),a,rotation=45)
#将各学校代码按降序顺序显示在x轴上
p1t.③ (range(len(s2.学校代码)),
④ )
#对各学校及对应技术选考人数进行绘图
plt.xlabel(″学校″)
plt.ylabel(″技术选考人数″)
plt.title(″各学校技术选考人数比对″)
plt.show()
划线处的代码应为 (单选,填字母)。
A.③barh ④df.技术
B.③plot ④df.技术
C.③bar ④s2.技术
D.③scatter ④s2.技术
15.某地区要对辖区内高中学生的高考选科情况进行统计,前期先用Excel收集各个学校每个学生的选科数据,界面如图所示。
用Python处理上述Excel文件,统计每个学校各个学科的选科情况,并用图表展示学生人数最多的5个学校的物理学科与政治学科人数,代码如下:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
df=pd.read_excel(″xk73.xlsx″)
#读数据到pandas的DataFrame结构中
sc=df.groupby(① ,as_index=False).count()#按学校分组计数
sc=sc.drop('姓名',axis=1)
#删除“姓名”列
sc=sc.rename(columns={'学生编号':'总人数'})
#修改“学生编号”为“总人数”
sc_sort=sc.sort_values(″总人数″,ascending=False)
#对分组计数结果进行排序
x=np.arange(1,6)
#产生列表[1,2,3,4,5]
y1=sc_sort.head()[″物理″]
②
plt.figure(figsize=(8,4))
plt.bar(x-0.2,y1,label=″wuli″,width=0.4)
plt.bar(x+0.2,y2,label=″zhengzhi″,width=0.4)
plt.ylim(50,400)
plt.legend()
df_sum=pd.DataFrame(data=sc.sum()).T
df_sum['学校代码']='合计'
③
#显示图表
result=sc.append(df_sum)
#增加“合计”行
result.to_excel(″学校人数统计.xlsx″)
#保存结果
在划线处填写合适代码,完善程序。
16.将系统数据库中高三年级一周(五天)考勤数据导出文件“kq.xlsx”,如图a所示,统计各班一周的缺勤率最高的3个班级(缺勤率%=一周未到人数/班级人数 100),并制作图表如图b所示,部分程序代码如下,请在划线处填入合适的代码。
图a
一周缺勤率最高的三个班级(单位:%)
图b
import pandas as pd
import matplotlib.pyplot as plt
plt.rc('font', {'family': 'SimHei'})
#让图中的中文正常显示
df = pd.read_excel(″kq.xlsx″)
#读取Excel文件中的数据
df1 = df.groupby(″班级″).sum()
df1[″缺勤率%″]= df1[″未到″]/(df1[″班级人数″]/5) 100
#计算各班缺勤率%
#按“缺勤率%”降序排序并取前3行
df2 = df1.sort_values(″缺勤率%″, ascending = False).①
x = df2.index
y = df2[″缺勤率%″]
plt.title(″一周缺勤率最高的三个班级(单位:%)″)
#设置图表标题
plt.② (x, y)
#绘制柱形图,如图b
plt.show()
优化集训11 pandas数据处理
1.B 解析 本题考查数据的相关知识。数据整理的目的是检测和修正有问题的数据,整合数据资源,规整数据格式,提高数据质量,选项A正确;数据处理的核心是数据,数据的质量直接影响数据分析的结果,选项B错误。
2.D 解析 本题主要考查的是Hadoop计算平台。Hadoop计算平台适用于对静态数据进行处理,而对流数据的实时处理明显性能不足,因此答案为D。
3.C 解析 批处理计算不适用于动态数据的处理。
4.D 解析 head(n)函数返回DataFrame前n行数据,若不设置参数n,则默认返回前5行。df[0:5]选取df对象前5行数据,df[5]选取df对象第6列数据。
5.D 解析 可以通过at方法获取DataFrame对象单个数据值,格式为df.at[index,column],所以②正确;或者根据列标题先获取整列,然后通过行索引获取单个数据值,其中获取一列数据可以通过字典记法或属性检索,第三行数据的行索引是2,所以④⑤均正确。
6.D 解析 sort_values()函数中,参数ascending,默认值为True,表示升序,为False时是降序;对于DataFrame对象,可以通过布尔型数据选取满足条件的行,正确写法为df[df[″总分″]>=600];最后通过语句⑤输出结果。
7.C 解析 统计各班级学生“总分”平均值需要按照“班级”分组计算。
df.groupby('班级').mean()#按“班级”分组,计算各纯数值列平均值。
df.groupby('总分').mean()#按“总分”分组,计算各纯数值列平均值。
df.groupby('班级')['总分'].mean()#按“班级”分组,并选取“总分”列计算平均值。
df.groupby('班级').总分.mean()#按“班级”分组,并选取“总分”列计算平均值。
df.groupby('班级').describe()#按“总分”分组,计算各纯数值列的平均值、最大值等统计数据。
8.B 解析 根据交通路况实时更新导航线路中数据为流数据,所以选用流计算。
9.C 解析 关系的可视化可采用散点图或气泡图。
10.B 解析 本题考查大数据应用的相关知识。云计算使千亿数据的检索实现了秒级返回,为大数据的分析提供了速度保障。
11.D 解析 典型的文本处理过程主要包括分词、特征提取、数据分析、结果呈现等。
12.B 解析 as_index:为True时自动把第1列作为了index,为False时默认索引0、1、2…。
13.(1)(df.本期价格-df.上期价格)/df.本期价格 100
(2)g.mean() (3)①df[″类别″]或df.类别 ②″涨跌幅″
解析 (1)根据数量关系确定计算公式。
(2)计算平均值使用mean()函数。
(3)①观察题图b可知需要填横坐标数据来源。②此处需要填写横坐标y的标签(ylabel),由题图可知应该是“涨跌幅”。
14.(1)df[df.技术==1](或df[df[″技术″]==1]) (2)①″学校代码″ ②g.sum()或g.count() (3)D 解析 本题考查pandas及绘图模块知识。(1)Dataframe中,要对某列进行筛选(查找并显示符合条件的值),可以通过df[df[″技术″]==1]或df[df.技术==1]来实现。(2)此处考查pandas中分组函数groupby的用法。依题意,本条语句按学校进行分组,分组的字段名应为“学校代码”,故①处填″学校代码″;①处代码已将分组后的对象赋值组变量g,②空对其进行计数,故填:g.count()。(3)观察题图b,可知当前是散点图(scatter),故选D。
15.①″学校代码″ ②y2=sc_sort.head()[″政治″](或y2=sc_sort.head(5)[″政治″]) ③plt.show() 解析 本题考查数据处理知识。①题干说明需要“统计每个学校各个学科的选科情况”,所以需要根据“学校编号”分类汇总统计各学校的选科情况,此空填写分组的关键字,答案为“学校代码”。②根据上下文,此空是获取学生人数最多的5个学校的政治学科人数。前面代码段已经根据各学生总人数降序排序,再结合上一段代码,此空只需要将“物理”修改成“政治”。head()函数返回DataFrame的前n个数据记录,如果参数不写,默认参数是5,所以此空答案:y2=sc_sort.head()[″政治″]或y2=sc_sort.head(5)[″政治″]。③代码段plt.show()的功能是显示图形。
16.①head(3) ②bar 解析 本题考查pandas数据处理知识。①根据提示可知,降序排序前提下取前三行,因此使用head(3)。②垂直柱状图,使用bar。
21世纪教育网 www.21cnjy.com 精品试卷·第 2 页 (共 2 页)
21世纪教育网(www.21cnjy.com)