资源简介 中小学教育资源及组卷应用平台2025新教材技术高考第一轮专题三 数据处理与应用考点过关练考点一 常用表格数据的处理1.(2022诸暨海亮高中期中,16)为了响应全民健身计划,某高中对学生进行了体质健康测评,并用Excel软件进行数据处理,如图a所示。图a请回答下列问题:(1)区域M2:P15 的数据是通过公式计算得到的,在M2单元格中输入公式后,再使用自动填充功能完成该区域的计算,则N3单元格中的公式是“=SUMPRODUCT(( )*($I$3:$I$553=N$1))”。 (提示:M2单元格输入公式=SUMPRODUCT((A1:A100=“2”)*(I1:I100=“优秀”)),表示同时满足A1:A100是2班和I1:I100是优秀这两个条件的情况数量,也就是进行条件计数。)(2)根据图a中的数据制作的图表如图b所示。创建该图表的数据区域是 。 图b(3)对图a工作表进行相关数据分析,下列说法正确的是 (多选,填字母)。 A.以“总分等级”为依据进行升序排序,选择的区域是A3:I553B.选择“A3:I553”按照“总分等级”升序排序后,图 b 的图表不会发生改变C.现需要选出总分等级为“不及格”的学生,可选择区域A3:I553,以“总分等级”为“不及格”进行筛选并保留结果D.为了显示男生立定跳远得分最高的3位学生数据,可先对“性别”为“男”进行筛选,再对“立定跳远”进行筛选,选择最大的3项2.(2023杭州“六县九校”期中,16)小明同学为备战明年的计算机类研究生考试,收集了部分高校的计算机专业复试分数线并进行分析。小明收集到的数据如图a所示。各院校总分展示图请帮助小明同学对表格数据进行下列分析:(1)若想知道这些学校的总分情况,则在F2单元格先输入公式 (要求必须使用函数),然后使用自动填充功能完成单元格F3:F8 的计算。 (2)现要求按照“总分”列进行降序排序,并筛选出总分在290分及以上的院校并显示,最后绘制各个院校总分的垂直柱形图(如图b)。请在程序划线①②③处填入合适的代码。import pandas as pdimport matplotlib.pyplot as pltplt.rcParams['font.sans-serif']=['KaiTi','SimHei','FangSong'] #图表中文显示处理df=pd.read_excel ("score.xlsx")df1=df[ ① ] print(df1)#输出筛选数据df=df. ② ("总分",ascending=False)#按照“总分”列降序排序 print(df)#输出排序好的数据#------创建图表代码------plt.title("各院校总分展示图")plt.xlabel("院校名称")plt. ③ (df.院校名称,df.总分) #各个院校总分的垂直柱形图 plt.show()3.(2023杭州S9联盟联考,14)小明收集了当地2023年3月份的天气情况,数据存储在文件“temp.xlsx”中,如图a所示。分析温差最大的日期,并生成反映各类天气情况的天数对比图如图b所示。(1)在对表格进行数据整理时发现,“日期”可能存在的数据问题是 (单选:A.数据缺失;B.数据异常;C.逻辑错误;D.数据格式不一致)。 (2)程序代码如下所示,请在划线处填入合适的代码。import matplotlib.pyplot as pltimport pandas as pdplt.rcParams["font.sans-serif"]=["SimHei"] #设置中文字体df=pd.read_excel("temp.xlsx")df["温差"]= ① #新增"温差"列 s=df.sort_values("温差", ascending=False, ignore_index=True)df_max= ② #获取温差最大的日期,如并列只输出第一个日期 print(df_max)df_t=s.groupby("天气", as_index=False).count()df_t=df_t.rename(columns={"日期": "天数"}) #修改列名"日期"为"天数"x=df_t["天气"]y=df_t["天数"] ③ (x, y, label="天气情况") plt.legend()plt.show()(3)观察图b,3月份天数最多的天气类型是 。 4.(2023杭州地区重点中学期中,15)某中学高一年级完成一次7选3意向调查,数据存储在“xk73.xlsx”中,如图a所示,其中1代表选择科目,0代表弃选科目。(1)使用 pandas 编程计算本次选课各门课人数占总人数的比例, 请在划线处填入合适的代码。import pandas as pdimport matplotlib.pyplot as pltplt.rcParams['font.sans-serif']=['SimHei']#图表显示中文df=pd.read_excel (" ① ") a=[" "]*len(df) #存储每个学生的选课组合dic={"物":0,"化":0,"生":0,"政":0,"历":0,"地":0,"技":0}for i in df.index: for j in df.columns[3:]: if df.at[i,j]==1: ② a[i]+=jfor i in dic.keys(): dic[i]=round(dic[i]/len(df)*100,2)(2)按照各科选考人数占比创建如图b所示的图表。各科选考人数占比df1=pd.DataFrame({"学科":dic.keys(),"人数占比":dic.values()})df1= ① plt.title("各科选考人数占比")plt.bar( ② , label="人数占比") plt.legend()plt.show()观察图b,横线处应填入的代码为:① ;② (选填字母)。 A.df1.sort_values("人数占比",ascending=True)B.df1.sort_values("人数占比",ascending=False)C.df1.学科,df1.人数占比D.df1.人数占比,df1.学科(3)小李同学想查询某种七选三组合有多少人。以下程序代码可以为小李同学提供查询功能,程序运行示例如图c所示,请在划线处填入合适的代码。请输入需要查询的选课组合:物化技选择物化技组合的同学共有:192人图ccx=input("请输入需要查询的选课组合:")cnt=0for i in range(len(a)): if : cnt=cnt+1print(f"选择{cx}组合的同学共有: {cnt}人")5.(2023浙江1月选考,14,9分)小红收集了部分城市2021年全年每天PM2.5、PM10、CO浓度数据,每天的数据分别保存在以8位日期字符串命名的CSV文件中,部分文件如图a所示,每个文件记录了一天24小时的监测数据,示例如图b所示。 为统计分析城市A全年各月份PM2.5的月平均浓度(当月的日平均浓度的平均值),编写Python程序。请回答下列问题:(1)定义pmday函数,功能为:读取某天的CSV文件,返回城市A当天PM2.5的日平均浓度。函数代码如下,划线处应填入的代码为 (单选,填字母)。 A.df['类型']=='PM2.5'B.df['类型'=='PM2.5']C.df[df['类型']]=='PM2.5'D.df[df['类型']=='PM2.5']import pandas as pddef pmday(dayfile):df=pd.read_csv(dayfile) #读取文件 dayfile 中的数据df= return df['城市A'].mean() #返回城市A当天PM2.5的日平均浓度(2)统计城市A各月份PM2.5的月平均浓度并绘制线形图,部分Python程序如下,请在划线处填入合适的代码。import matplotlib.pyplot as pltdef tstr(t):if t<10: retrun '0'+str(t)else: retrun str(t)pm=[0]*12mdays=[31,28,31,30,31,30,31,31,30,31,30,31] #2021年每月天数for m in range(12): sm=0mstr=tstr(m+1)for d in range( ① ): dstr=tstr(d+1)dayfile='2021'+ mstr+ dstr+ '.csv'sd=pmday(dayfile) ② pm[m]=sm/mdays[m]x=[1,2,3,4,5,6,7,8,9,10,11,12]y= ③ plt.plot(x,y) #绘制线形图#设置绘图参数,显示如图c所示线形图,代码略(3)城市A 2021年 PM2.5年平均浓度为34.6微克/立方米。由图c可知,城市A 2021年 PM2.5月平均浓度超过年平均浓度的月份共 个。 考点二 大数据处理1.(2023宁波三锋期中,2)下列关于大数据与大数据处理的说法,不正确的是( )A.处理大数据时,一般采用分治思想B.大数据的处理对象是全体数据,而不是抽样数据C.大数据的特点是数据量大、速度快、数据类型多、价值密度低D.Hadoop是一个可运行于大规模计算机集群上的分布式系统基础架构,适用于处理实时数据2.(2023金华十校联考,3)下列有关大数据处理、数据可视化的说法不正确的是( )A.静态数据是指处理时已收集完成、计算时不会发生改变的数据B.流数据主要是指不间断地、持续地到达的实时数据C.图计算是指有关大量图片的计算D.“各省生产总值占比情况”可以采用饼图或环形图呈现3.有Python程序段如下所示:import pandas as pdimport numpy as npa=np.array([1,2,3,4]).reshape(2,2)df=pd.DataFrame(a)print(df.at[1,1])该程序段运行后输出的结果为( )A.4 B.3 C.2 D.14.小张收集了近阶段要学习的英文单词,存储为“data.txt”文件,格式如图所示。处理“data.txt”文件中的英文单词的Python程序段如下所示:file='data.txt'word_c=[]n=0for word in open(file): if word[0:1]=="c": word_c.append(word) print('字母c开头的单词个数为:',n)(1)划线处的代码为 。 (2)该程序段运行后,列表word_c中的数据为 。 5.请在空格处填写正确的代码,使程序完善。实现功能:绘制y=x2-2x+1的图象。#加载numpy模块并取名为npimport numpy as np#加载matplotlib.pyplot模块并取名为pltimport matplotlib.pyplot as plt# x在-7到9之间,每隔0.1取一个值x=np.arange(-7,9,0.1) ① =x**2-2*x+1 plt.plot(x, ② ) plt.title('y=x*x-2*x+1')plt.xlabel('x')plt.ylabel('y')plt. ③ 6.在网上搜索朱自清的文章《绿》,如图所示。(1)搜索信息并保存为txt文件,该过程称为 。 (2)“绿.txt”文件的文本类型是 。(填写字母:A.结构化数据/B.半结构化数据/C.非结构化数据) (3)制作标签云的代码如下:import collectionsimport jiebaimport wordcloud as wcimport numpy as npfrom PIL import Imagewcg=wc.WordCloud(background_color="white",font_path='assets/msyh.ttf')text=open('data/绿.txt',encoding='utf-8')read()seg_list= ① f=collections.Counter(seg_list)wcg.fit_words(f)wcg.to_file('output/b.png')划线处①语句是调用jieba对象的cut函数对变量为text的文件进行分词,则该处语句为 。 (4)得到的标签云如图所示。该图片的文件名是 ,表现该文本特征的是 。(至少写出3个) 专题综合练题组一1.(2023十校联盟联考,5)近年来,各地相继出现了一些无人售货超市,其购物流程为:通过微信号/支付宝注册→扫码或扫脸开门→选购商品→结算区显示屏清单确认(智能检测)→开门即走(智能扣款)。整个过程快捷方便,达到无感支付。超市内24小时利用摄像头监控,实行人脸识别防盗监控,发现有小偷将自动抓拍报警并列入黑名单,通过RFID技术+核心软件算法有效识别和定位货损源头,并进行有效处理和防范。此外,超市也会依靠大数据、云计算技术,对各种商品的销售状况进行汇总分析,并智能判断客户的购买习惯进行产品推荐,还能预测销售走势,给商家提供合理的建议。根据阅读材料,下列说法正确的是( )A.汇总分析已完成的商品销售状况数据属于流数据B.无人售货超市依靠大数据处理只需要分析最近几个月的抽样数据C.根据客户账号的购买习惯进行产品推荐,不需要知道用户购买商品的原因D.无人售货超市中的每一个数据都来自真实数据,体现了大数据价值密度高的特点2.(2023舟山高二期末,12)小明用下列Python程序将图a处理成图b所示效果,发现处理后的图像不理想,他要想将图像处理成图c所示效果,则可做的修改是( ) from PIL import Image#第0行import numpy as np#第1行import matplotlib.pyplot as plt#第2行img=np.array(Image.open ('dj.jpg').convert('L'))#第3行row,cols=img.shape#第4行for i in range(row):#第5行 for j in range(cols):#第6行 if img[i,j]>188:#第7行 img[i,j]=1 #1表示白色#第8行 else:#第9行 img[i,j]=0 #0 表示黑色#第10行 plt.figure('dj')#第11行 plt.imshow(img,cmap='gray')#第12行 plt.axis('off')#第13行plt.show ()A.将第7行中的数字188改成138B.将第7行中的数字188改成250C.将第7行中的>改成<D.将第8行的代码与第10行的代码互换3.(2022杭州重点中学期中,13)小萧从国家统计局网站上收集了近几年国民总收入相关数据,并使用Excel软件进行相关数据处理与分析。部分界面如图a所示,请回答下列问题:(1)下列关于数据整理的描述,正确的是 (单选)。 A.某些缺失的数据可以自己随意估计一个值进行补充B.Excel表格中的异常数据可以直接删除或忽略C.Excel表格中的重复数据可以进行合并或删除D.Excel中格式不一致的数据,一般只保留一种格式的数据,删除其他格式的数据(2)图b的图表数据类型为 (选填:柱形图/条形图/折线图)。 图b(3)根据表格数据呈现,从2017年开始可以计算国民总收入增长比例,方法是在C8单元格输入公式 (计算公式:(当年国民总收入-去年国民总收入)/去年国民总收入),设置百分比格式后自动填充至F8单元格。 (4)除了Excel,可以进行数据分析的软件还有 (多选,填数字)。 ①Word ②SPSS ③SAS ④MATLAB⑤记事本 ⑥Python ⑦录音机4.(2022杭州八县市区期末,16)某次测试的Excel文件成绩表如图1所示。图1(1)已知有200名同学参加了本次测试。小明想把全体同学的信息平均分放在D202单元格,那么在 D202单元格输入的公式为 。 (2)现在要求用Python增加“总分”列数据,然后求每个班总分的平均分(如图2),最后绘制每班总分平均分的垂直柱形图(如图3)。请在程序划线①②处选择合适的代码(填字母)。图2图3import pandas as pdimport matplotlib.pyplot as plt#图表中文显示处理,代码略df=pd.read_excel("test.xlsx")score=[]for i in df.values:js= ① #①处请选择(填字母): A.df["信息"]+df["通用"]/B.i[3]+i[4] score.append(js)df["总分"]=scoredf1=df.groupby("班级".as_index=False)["总分"].mean()plt.title("期中技术平均分")plt. ② (df1["班级"],df1["总分"],width=0.5)#②处请选择(填字母): A.plot/B.bar/C.scatter5.(2022丽水期末,13)小明收集了本周信息技术学科学习评价的数据,如图所示。(1)观察上表小明做了如下操作,其中属于数据整理的是 (多选,填字母)。 A.删除重复行第五行B.验证并修改D2单元格数据C.通过公式计算全班平均分D.重新设置C3单元格格式(2)为了分析每个组的平均分,设计了如下Python程序。import pandas as pdimport matplotlib.pyplot as pltdf=pd.read_excel("成绩表.xlsx") print(df1)划线处的代码应为 (单选,填字母)。 A.df1=df.groupby("平均分").mean()B.df1=df.mean()C.df1=df.groupby("小组").mean()D.df1=df["小组"].mean()(3)利用Python程序绘制各小题得分率图表,如图所示。请在划线处填写合适的代码。num=int(input("请输入小组:"))plt.figure(figsize=(10,5))list=[]for i in range(12): s="题"+str(i+1) list.append(df1.at[num,s]*50)plt.bar(range(1,13),list)plt.title(str(num)+" ") plt.xlabel("question number")plt.ylabel("correct rate")plt.show()6.(2024届A9协作体返校考,14)张三同学收集了一个地区8月各类共享单车的骑行数据记录,每天的用户数据存储于“shared bikes. xlsx”文件中,不考虑跨天数据。数据格式如图a所示,请回答下列问题:(1) cal函数功能为:读取骑行时间的小时和分钟部分,转换为分钟格式并返回,如“2022/8/20 6:57”获取“6:57”转换为417 (6*60+57=417), 代码如下。请在划线处填入合适的代码。def cal(s): n=len(s) for i in range(n): if s[i]==" ": #如果为空格字符 p=i if s[i]==":": q=i t= + int(s[q+1:]) return t(2)统计本月各类型单车的每天平均骑行时长,并绘制柱形图,代码如下,绘制的图表如图b所示,请在划线处填入合适的代码。import pandas as pdimport matplotlib.pyplot as pltdf=pd.read_excel ("shared bikes.xlsx")bike=["哈罗单车","摩拜单车","美团单车","青桔单车"]sm=[0]*4avg=[0]*4days=31for i in ① : t=cal(df.at[i, "结束时间"]) - cal (df. at[i, "开始时间"]) for j in range(4): if df.at[i,"App 类型”]==bike[j]: ② breakfor i in range(4): avg[i]=sm[i]/ daysplt.figure(figsize=(12, 4))x=bikey= ③ plt.bar(x, y)plt.show()(3)统计本月各类型单车的骑行次数,加框处代码有错,可以改正为 (选填字母:A.max()/B.min()/C.mean()/D.count())。 n=df. groupby("App类型",as_ index=True).用户编号.sum ()7.(2024届绍兴诊断性测试,14)学校暑期开展“青春迎亚运”活动,邀请高二学生每日参加运动锻炼并进行线上打卡。每周收集一次相关数据,分别保存在相应的xlsx文件中,部分文件如图a所示。每个文件记录了一周7天的打卡数据,示例如图b所示,其中运动时长单位为分钟。为统计分析学生锻炼情况,给出周报数据,编写Python程序,请回答以下问题:(1)定义px函数,功能为:读取某一周的打卡数据,将其按班级进行排序操作并返回结果。函数代码如下,将划线处代码补充完整。import pandas as pddef px(file_week): df=pd.read_excel(file_week) df=df.sort_values( ,ignore_index=True) #按班级升序排序,参数ignore_index=True表示更新索引 return df(2)统计某一周各运动项目的参与人次,并绘制柱形图,如图c所示,部分Python代码如下:import matplotlib.pyplot as plts=input("请输入文件名: ")df=px(s)df1=df.groupby("运动项目".as_index=False). ① #统计各运动项目参与人次 df1.rename(columns={"学号":"参与人次"},inplace=True) #更改列标题plt.bar( ② ) plt.xlabel("运动项目")plt.ylabel("参与人次")plt.show()划线处应填入的代码为 (单选,填字母)。 A.①count() ②df1["参与人次"], df1["运动项目"]B.①sum() ②df1["参与人次"], df1["运动项目"]C.①sum() ②df1.运动项目, df1.参与人次D.①count() ②df1.运动项目, df1.参与人次(3)统计某一周每班各学生的总运动时长后,比较得出该周每班最高的两位时长,部分Python程序代码如下,请在划线处填入合适的代码。qp=[[0 for i in range(m)]for j in range(n)]'''定义数组qp记录每班各学生一周运动总时长,n为班级数,m为每班人数。其中qp[0][0]~qp[0][m-1]存储1班1号~m号同学的每周运动总时长,依次类推,qp[n-1][0]~qp[n-1][m-1]存储n班1号~m号同学的每周运动总时长。'''print("本周每班最高的两位时长分别为: ") i=0 while i num=df["学号"][i]cla=df["班级"][i] ① if i!=0 and df["班级"][i]!=df["班级"][i-1] or ② : cla=df["班级"][i-1]k1=0;k2=0for j in range(1,len(qp[cla-1])): if qp[cla-1][j]>qp[cla-1][k1]: ③ k1=j elif qp[cla-1][j]>qp[cla-1][k2]: k2=jprint(cla,"班",qp[cla-1][k1].qp[cla-1][k2])i=i+1(4)统计某一周各运动项目的参与人次后绘制柱形图如图c所示,由图可知,该周参与人气最高的运动项目为 。 8.(2024届宁波模拟,13)已知某年级有6个班级,所有学生名单存储在文件“name.csv”中(如图1),学校举行某趣味活动项目中,需要每个班抽3名代表参加比赛,请编写一个随机抽取程序,执行效果如图2。请回答以下问题: (1)加框处代码的作用是 。 (2)实现上述功能的部分Python程序如下,请在划线处填写合适的代码。import csvimport random #数据读入f=open("name.csv","r")flines=csv.reader(f)name_list=[]m=6 #班级总数total=18 #参赛总人数for line in flines:if line[0]=="班级":continue #跳过当前循环的剩余语句,继续进行下一次循环name_list.append(line) ① flag=[False]*ngrade=[3]*mi=0while i p=random.randint( ② , ③ ) bj=int(name_list[p][0]) if flag[p]==False: if grade[bj-1]>0: flag[p]=True ④ i+=1print("抽取名单为: ")print("班级","姓名")for i in range(n):if flag[i]: print(name_list[i][0],name_list[i][1])f.close()9.(2023杭州地区重点中学联考,14)小明利用“在线社团报名系统”收集了全校学生的社团报名信息,并将报名数据导出到“社团报名.xlsx”中,如图1所示。然后编写Python程序对报名数据进行处理,生成分别以班级名和社团名为文件名的 Excel 文件,以便分发给相应的社团指导老师和班主任。(1)在对表格进行数据整理时发现,关于“Jacky.Y” 同学的记录可能存在的数据问题是 (选填:A.数据缺失 B.数据异常 C.逻辑错误 D.数据格式不一致)。 (2)其中生成每个社团名单文件的过程是:先对报名数据按社团名称进行分类,并对选报同一社团的学生按班级进行升序排序,然后生成各个社团名单文件,如图 2所示。对应的程序代码如下,请在划线处填写合适的代码。 import pandas as pd def read_file(filename): #读入报名数据的原始文件,并将表中的数据转换成列表,代码略 def save_file(a): #保存名单到相应社团的Excel电子表格文件 df=pd.DataFrame(a,columns=["班级","姓名","选报社团"]) df.to_excel( ① )+".xlsx",index=False) a=read_file("社团报名.xlsx") n=len(a) #按社团名(参照拼音的字母顺序)进行升序排序,代码略 #统计各社团人数,存在列表 rs 中,rs=[["滑板社",36],…],代码略 s=0 for i in range(len(rs)): ② left,right=s, s+num-1 while left < right: imin=imax=left for k in range(left+1,right+1): if a[k][0] < a[imin][0]: imin=k elif a[k][0] > a[imax][0]: imax=k if imin !=left: a[imin],a[left]=a[left],a[imin] if imax==left: ③ if imax !=right: a[imax],a[right]=a[right],a[imax] left=left+1; right=right-1 ④ s+=num题组二1.(2022诸暨期末,4)使用pandas编程处理数据DF1,下列选项能实现行列转置操作的是( )A.DF1.T B.DF1.columnsC.DF1.values D.DF1.index2.(2022宁波奉化期末,9) 有如下Python程序段:import pandas as pds=pd.Series(range(5,11,3))s[1]=15print(s)该程序执行后,输出的结果是( )1 15 2 8 dtype: int64 0 5 1 15 dtype: int64 1 15 2 8 3 11 dtype: int64 0 5 1 15 2 11 dtype: int64 A. B. C. D.3.(2022宁波咸祥中学期中,16)小明收集了某超市饮料销售情况相关数据,并使用Excel软件进行处理,如图a所示。请回答下列问题:(1) 区域 I3:I15 的数据是通过公式计算得到的。在I3单元格输入公式后, 用自动填充功能完成 I4:I15 的计算,则I3单元格中的公式是 。 (占销售总额百分比=销售额(元)/销售总额(元)) (2)若因误操作将 I16 单元格删除,则 I3 单元格会显示 (选填字母:A.#VALUE B.#DIV/0! C.###### D.#REF! )。 (3)要将类别为“可乐”的饮料以“毛利润(元)”为主要关键字降序排序, 则选择排序的区域为 。 (4)小王根据图 a 中的数据,制作了一张反映橙汁类饮料销售额和毛利润对比的图表,如图b 所示,则建立该图表的数据区域是 。将E8单元格数值修改成6.00,是否会影响该图表 (选填:是/否) 图b4.(2022台州启超中学期中,16)APP活跃人数数据存储在“app.xlsx”文件中,如图所示,现要编程统计结果,请回答下列问题:若要把“app.xlsx”第1张工作表中的信息导入到book1对象中,并进行统计,实现这个功能的Python代码如下,在程序划线处填入合适的代码。import pandas as pdbook1= (1) #读取app.xlsx文件数据,并存储在book1对象中 book1_sum= (2) #计算10月人数之和book1_aver= (3) #计算11月人数平均值book1_g= (4) #按应用领域分组统计book1_sort= (5) #按11月人数值,降序排序print("10月人数之和:",book1_sum)print("11月人数平均值:",book1_aver)5.(2022宁波奉化期末,14)小孙收集了2016年到2020年的各地区粮食生产总量并存储在“lscl.xlsx”文件中,如图a所示,现使用Python对其进行数据处理,并实现数据可视化,绘制的图表如图b所示。实现如上功能的代码如下,请回答以下问题。import pandas as pdimport matplotlib.pyplot as pltplt.rc('font', **{'family': 'SimHei'})#设置中文字体df=pd.read_excel("lscl.xlsx")df. ① ("2020年",ascending=False,inplace=True) df1=df.head(10)x= ② y=df1["2020年"]plt.figure(figsize=(8,6))plt. ③ ("2020年粮食产量TOP10") plt.bar(x,y,label="2020年")plt.xlabel("地区")plt.legend() ④ (1)请在划线处填入合适的代码语句,以实现以上功能。(2)代码语句“plt.bar(x,y,label="2020年")”的功能为绘制如图b所示的图像,能够实现相同功能的语句是 (多选题,少选得1分,多选不得分)。 A.df.head(10).plot("地区","2020年")B.df[:10:].plot("地区","2020年",kind="bar")C.plt.plot(x,y,label="2020年",kind="bar")D.plt.bar("地区","2020年",label="2020年")E.df1.plot("地区","2020年",kind="bar")6.(2022杭州场口中学、桐庐富春中学检测,16)在月考之后,学校教务员拿到了高一年级月考的基础成绩并用Excel软件进行数据处理,如图1所示。请回答下列问题:图1(1)区域M2:M645的数据是通过在M2单元格输入公式并自动填充得到的,则M645单元格中的公式是 。 (2)为了分析各班级的数学平均分,设计了如下Python程序,利用其绘制各班数学平均分图表,如图2所示:结合上图的效果,请在程序划线处填写合适的代码。import matplotlib.pyplot as pltimport pandas as pddf=pd.read_excel('高一月考成绩.xlsx')df1=df.groupby("班级"). ① plt.bar(df1.index, ② ) plt.title("高一各班数学平均分")plt.ylim(40,100)plt.xlabel( ③ ) plt.ylabel("分数")plt.show()7.(2023 三月百校联考,14)李明收集了梅西2004年至2022年俱乐部比赛数据,保存在“梅西俱乐部详细比赛数据.xlsx”文件中,部分数据如图a所示,现在利用pandas模块处理数据。(1)梅西2004年10月—2021年7月效力于巴塞罗那俱乐部,2021年8月转会至巴黎圣日耳曼俱乐部,现在李明想知道梅西每个赛季的胜率,实现上述功能的Python程序如下,请在划线处填入合适的代码。 import pandas as pd import matplotlib.pyplot as plt df=pd.read_excel("梅西俱乐部详细比赛数据.xlsx") df['年']=pd.to_datetime(df["时间"]).dt.strftime('%Y').astype(int) df['月']=pd.to_datetime(df["时间"]).dt.strftime('%m').astype(int) df['胜负情况']=" " for i in range(len(df)): f=True;z=0;k=0 for c in df["比分"][i]: if ① : if f: z=z*10+int(c) else: k=k*10+int(c) else: f=not f jlb="巴塞罗那" if df["年"][i]*100+df["月"][i]>=202108: ② if (df["主队"][i]==jlb and z>k) or (df["客队"][i]==jlb and z df['胜负情况'][i]="胜" elif z==k: df['胜负情况'][i]="平" else: df['胜负情况'][i]="负" g=df.groupby(df["年"],as_index=True).count() ③ g1=df1.groupby(df1["年"],as_index=True).count() g["胜率"]=g1["胜负情况"]/g["胜负情况"]*100(2)图b为2004—2022年梅西俱乐部比赛胜率统计图。2004-2022年梅西俱乐部比赛胜率统计 plt.plot( , marker='^') plt.title("2004-2022年梅西俱乐部比赛胜率统计") plt.show()方框处代码为 (多选:填字母)。 A.g["年"],g["胜率"] B.g["年"],g.胜率C.g.index,g["胜率"] D.g.index,g.胜率8.(2022湖州三贤联盟期中,14)小张同学为了更好地了解冬奥会,从网上收集了历届冬奥会各个项目比赛信息,收集到的部分数据如图1所示。图1图2为分析数据,小张编写了如下程序:import pandas as pdimport matplotlib.pyplot as pltfrom matplotlib.pyplot import MultipleLocatorplt.rcParams['font.sans-serif']=['SimHei'] #正常显示中文标签df=pd.read_csv("dongao.csv")#删除所有未获得奖牌的记录,并将奖牌列中的"G"修改为"金牌","S"修改为"银牌","B"修改为"铜牌"jp={'G':'金牌','S':'银牌','B':'铜牌'}for i in df.index: if ① : df=df.drop(i) else: df.at[i,'奖牌']=jp[df.at[i,'奖牌']]#对输入国家每届的奖牌数进行统计,并制作相应图表,如图2所示nt=input("请输入国家名称:")df1=df[df['国家']==nt] df3=pd.DataFrame(df2) #将分组后数据生成新的二维结构,索引为“届次”,列标题为“奖牌”x=df3.indexy= ② plt.title(nt+"历届冬奥会奖牌趋势图")plt. ③ (x,y) plt.show()(1)在划线处填上合适的代码。(2)为了能显示某国历届冬奥会奖牌变化,需在加框处添加的语句为 (多选)。 A.df2=df1.groupby('奖牌')df2=df1.届次.count()B.df2=df1.groupby('届次')df2=df2['奖牌'].count()C.df2=df1.groupby('奖牌')['届次'].count() D.df2=df1.groupby('届次').奖牌.count()9.(2023十校联盟联考,14)小明从网上下载了豆瓣图书1900—2017年间出版的图书数据,存储在Excel文件中,如图a所示,数据表已按出版年份升序排好,包含书名、作者、出版社、出版年份、价格、评分以及评论数量。他要编写一个Python程序快速对图书数据进行分析。(1)为了求评论数量累计最高的作者及其出版的图书平均评分,小明需要对图a所示的表中数据进行整理,则下列说法正确的是 (多选,填字母)。 A.第3行和第4行数据重复,删除其中一行即可B.通过检测发现F56168单元格的数据存在错误,应进行修正C.删除“出版社”和“出版年份”两列数据,不影响分析结果D.“评分”及“评论数量”为0的数据没有任何价值,可以直接删除(2)小明利用整理好的数据,编写并运行程序,结果如图b所示。作者 评论数量0 [日]村上春树 679101.01 [日]东野主吾 664106.02 韩寒 623116.03 郭敬明 620571.04 [英]J.K.罗琳 462476.0评论数量累计最多的作者是:[日]村上春树 共出版了34部作品,平均评分为8.01图b实现上述结果的Python程序如下:import pandas as pddf=pd.read_excel("books.xlsx")df1=df.groupby("作者", as_index=False)df2=df1.评论数量.sum()dfsort=df2.sort_values("评论数量" ,ascending=False,ignore_index=True)print(dfsort.head(5))#输出评论数量累计前五名作者top= ① dfbk=df[df.作者==top]#根据作者检索出相应的作品avg=dfbk.评分.mean()print("评论数量累计最多的作者是:", top)print("共出版了", ② ,"部作品,平均评分为" , round(avg,2)) 则程序中划线①②处应填入的代码为:① ; ② 。 10.(2024浙江1月选考,14,7分)某学院举行运动会,比赛设跳高、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程序如下,请在程序中划线处填入合适的代码。import pandas as pdimport matplotlib.pyplot as plt#读取如图b 所示数据,保存到DataFrame对象df1中,代码略f=[9,7,6,5,4,3,2,1]for i in range(0,len(df1)):rank=df1.at[i,"名次"] #通过行、列标签取单个值score=0if rank<=8: df1.at[i,"得分"]=score(3)根据上述df1中的得分数据,统计各专业总分,绘制如图c所示的柱形图,实现该功能的部分Python程序如下:df2=df1.groupby(" ",as_index=False).sum() #分组求和 #设置绘图参数,代码略plt.bar(x,y) #绘制柱形图①请在程序中划线处填入合适的代码。②程序的方框中应填入的正确代码为 (单选,填字母)。 A.x=df1["专业"]y=df1["总分"]B.x=df2["专业"]y=df2["得分"]C.df1["专业"]="专业"df1["总分"]="总分"D.df2["专业"]="专业"df2["得分"]="得分"专题三 数据处理与应用考点过关练考点一 常用表格数据的处理1.(2022诸暨海亮高中期中,16)为了响应全民健身计划,某高中对学生进行了体质健康测评,并用Excel软件进行数据处理,如图a所示。图a请回答下列问题:(1)区域M2:P15 的数据是通过公式计算得到的,在M2单元格中输入公式后,再使用自动填充功能完成该区域的计算,则N3单元格中的公式是“=SUMPRODUCT(( )*($I$3:$I$553=N$1))”。 (提示:M2单元格输入公式=SUMPRODUCT((A1:A100=“2”)*(I1:I100=“优秀”)),表示同时满足A1:A100是2班和I1:I100是优秀这两个条件的情况数量,也就是进行条件计数。)(2)根据图a中的数据制作的图表如图b所示。创建该图表的数据区域是 。 图b(3)对图a工作表进行相关数据分析,下列说法正确的是 (多选,填字母)。 A.以“总分等级”为依据进行升序排序,选择的区域是A3:I553B.选择“A3:I553”按照“总分等级”升序排序后,图 b 的图表不会发生改变C.现需要选出总分等级为“不及格”的学生,可选择区域A3:I553,以“总分等级”为“不及格”进行筛选并保留结果D.为了显示男生立定跳远得分最高的3位学生数据,可先对“性别”为“男”进行筛选,再对“立定跳远”进行筛选,选择最大的3项答案 (1)$A$3:$A$553=$K3 (2)M1:P1,M16:P16(3)ABC2.(2023杭州“六县九校”期中,16)小明同学为备战明年的计算机类研究生考试,收集了部分高校的计算机专业复试分数线并进行分析。小明收集到的数据如图a所示。各院校总分展示图请帮助小明同学对表格数据进行下列分析:(1)若想知道这些学校的总分情况,则在F2单元格先输入公式 (要求必须使用函数),然后使用自动填充功能完成单元格F3:F8 的计算。 (2)现要求按照“总分”列进行降序排序,并筛选出总分在290分及以上的院校并显示,最后绘制各个院校总分的垂直柱形图(如图b)。请在程序划线①②③处填入合适的代码。import pandas as pdimport matplotlib.pyplot as pltplt.rcParams['font.sans-serif']=['KaiTi','SimHei','FangSong'] #图表中文显示处理df=pd.read_excel ("score.xlsx")df1=df[ ① ] print(df1)#输出筛选数据df=df. ② ("总分",ascending=False)#按照“总分”列降序排序 print(df)#输出排序好的数据#------创建图表代码------plt.title("各院校总分展示图")plt.xlabel("院校名称")plt. ③ (df.院校名称,df.总分) #各个院校总分的垂直柱形图 plt.show()答案 (1)=SUM (B2:E2) (2)①df.总分>=290或者df["总分"]>=290 ②sort_values ③bar3.(2023杭州S9联盟联考,14)小明收集了当地2023年3月份的天气情况,数据存储在文件“temp.xlsx”中,如图a所示。分析温差最大的日期,并生成反映各类天气情况的天数对比图如图b所示。(1)在对表格进行数据整理时发现,“日期”可能存在的数据问题是 (单选:A.数据缺失;B.数据异常;C.逻辑错误;D.数据格式不一致)。 (2)程序代码如下所示,请在划线处填入合适的代码。import matplotlib.pyplot as pltimport pandas as pdplt.rcParams["font.sans-serif"]=["SimHei"] #设置中文字体df=pd.read_excel("temp.xlsx")df["温差"]= ① #新增"温差"列 s=df.sort_values("温差", ascending=False, ignore_index=True)df_max= ② #获取温差最大的日期,如并列只输出第一个日期 print(df_max)df_t=s.groupby("天气", as_index=False).count()df_t=df_t.rename(columns={"日期": "天数"}) #修改列名"日期"为"天数"x=df_t["天气"]y=df_t["天数"] ③ (x, y, label="天气情况") plt.legend()plt.show()(3)观察图b,3月份天数最多的天气类型是 。 答案 (1)D (2)①df["最高气温"]-df["最低气温"] ②s["日期"][0]或 s.at[0,"日期"] ③plt.bar (3)小雨4.(2023杭州地区重点中学期中,15)某中学高一年级完成一次7选3意向调查,数据存储在“xk73.xlsx”中,如图a所示,其中1代表选择科目,0代表弃选科目。(1)使用 pandas 编程计算本次选课各门课人数占总人数的比例, 请在划线处填入合适的代码。import pandas as pdimport matplotlib.pyplot as pltplt.rcParams['font.sans-serif']=['SimHei']#图表显示中文df=pd.read_excel (" ① ") a=[" "]*len(df) #存储每个学生的选课组合dic={"物":0,"化":0,"生":0,"政":0,"历":0,"地":0,"技":0}for i in df.index: for j in df.columns[3:]: if df.at[i,j]==1: ② a[i]+=jfor i in dic.keys(): dic[i]=round(dic[i]/len(df)*100,2)(2)按照各科选考人数占比创建如图b所示的图表。各科选考人数占比df1=pd.DataFrame({"学科":dic.keys(),"人数占比":dic.values()})df1= ① plt.title("各科选考人数占比")plt.bar( ② , label="人数占比") plt.legend()plt.show()观察图b,横线处应填入的代码为:① ;② (选填字母)。 A.df1.sort_values("人数占比",ascending=True)B.df1.sort_values("人数占比",ascending=False)C.df1.学科,df1.人数占比D.df1.人数占比,df1.学科(3)小李同学想查询某种七选三组合有多少人。以下程序代码可以为小李同学提供查询功能,程序运行示例如图c所示,请在划线处填入合适的代码。请输入需要查询的选课组合:物化技选择物化技组合的同学共有:192人图ccx=input("请输入需要查询的选课组合:")cnt=0for i in range(len(a)): if : cnt=cnt+1print(f"选择{cx}组合的同学共有: {cnt}人")答案 (1)①xk73.xlsx ②dic[j]+=1 (2)①B ②C (3)a[i]==cx或其他等价表达式5.(2023浙江1月选考,14,9分)小红收集了部分城市2021年全年每天PM2.5、PM10、CO浓度数据,每天的数据分别保存在以8位日期字符串命名的CSV文件中,部分文件如图a所示,每个文件记录了一天24小时的监测数据,示例如图b所示。 为统计分析城市A全年各月份PM2.5的月平均浓度(当月的日平均浓度的平均值),编写Python程序。请回答下列问题:(1)定义pmday函数,功能为:读取某天的CSV文件,返回城市A当天PM2.5的日平均浓度。函数代码如下,划线处应填入的代码为 (单选,填字母)。 A.df['类型']=='PM2.5'B.df['类型'=='PM2.5']C.df[df['类型']]=='PM2.5'D.df[df['类型']=='PM2.5']import pandas as pddef pmday(dayfile):df=pd.read_csv(dayfile) #读取文件 dayfile 中的数据df= return df['城市A'].mean() #返回城市A当天PM2.5的日平均浓度(2)统计城市A各月份PM2.5的月平均浓度并绘制线形图,部分Python程序如下,请在划线处填入合适的代码。import matplotlib.pyplot as pltdef tstr(t):if t<10: retrun '0'+str(t)else: retrun str(t)pm=[0]*12mdays=[31,28,31,30,31,30,31,31,30,31,30,31] #2021年每月天数for m in range(12): sm=0mstr=tstr(m+1)for d in range( ① ): dstr=tstr(d+1)dayfile='2021'+ mstr+ dstr+ '.csv'sd=pmday(dayfile) ② pm[m]=sm/mdays[m]x=[1,2,3,4,5,6,7,8,9,10,11,12]y= ③ plt.plot(x,y) #绘制线形图#设置绘图参数,显示如图c所示线形图,代码略(3)城市A 2021年 PM2.5年平均浓度为34.6微克/立方米。由图c可知,城市A 2021年 PM2.5月平均浓度超过年平均浓度的月份共 个。 答案 (1)D (2)①mdays[m] ②sm+=sd ③pm (3)5考点二 大数据处理1.(2023宁波三锋期中,2)下列关于大数据与大数据处理的说法,不正确的是( )A.处理大数据时,一般采用分治思想B.大数据的处理对象是全体数据,而不是抽样数据C.大数据的特点是数据量大、速度快、数据类型多、价值密度低D.Hadoop是一个可运行于大规模计算机集群上的分布式系统基础架构,适用于处理实时数据答案 D 2.(2023金华十校联考,3)下列有关大数据处理、数据可视化的说法不正确的是( )A.静态数据是指处理时已收集完成、计算时不会发生改变的数据B.流数据主要是指不间断地、持续地到达的实时数据C.图计算是指有关大量图片的计算D.“各省生产总值占比情况”可以采用饼图或环形图呈现答案 C 3.有Python程序段如下所示:import pandas as pdimport numpy as npa=np.array([1,2,3,4]).reshape(2,2)df=pd.DataFrame(a)print(df.at[1,1])该程序段运行后输出的结果为( )A.4 B.3 C.2 D.1答案 A 4.小张收集了近阶段要学习的英文单词,存储为“data.txt”文件,格式如图所示。处理“data.txt”文件中的英文单词的Python程序段如下所示:file='data.txt'word_c=[]n=0for word in open(file): if word[0:1]=="c": word_c.append(word) print('字母c开头的单词个数为:',n)(1)划线处的代码为 。 (2)该程序段运行后,列表word_c中的数据为 。 答案 (1)n=n+1或n+=1 (2)data.txt中所有以小写字母"c"开头的单词5.请在空格处填写正确的代码,使程序完善。实现功能:绘制y=x2-2x+1的图象。#加载numpy模块并取名为npimport numpy as np#加载matplotlib.pyplot模块并取名为pltimport matplotlib.pyplot as plt# x在-7到9之间,每隔0.1取一个值x=np.arange(-7,9,0.1) ① =x**2-2*x+1 plt.plot(x, ② ) plt.title('y=x*x-2*x+1')plt.xlabel('x')plt.ylabel('y')plt. ③ 答案 ①y ②y ③show()6.在网上搜索朱自清的文章《绿》,如图所示。(1)搜索信息并保存为txt文件,该过程称为 。 (2)“绿.txt”文件的文本类型是 。(填写字母:A.结构化数据/B.半结构化数据/C.非结构化数据) (3)制作标签云的代码如下:import collectionsimport jiebaimport wordcloud as wcimport numpy as npfrom PIL import Imagewcg=wc.WordCloud(background_color="white",font_path='assets/msyh.ttf')text=open('data/绿.txt',encoding='utf-8')read()seg_list= ① f=collections.Counter(seg_list)wcg.fit_words(f)wcg.to_file('output/b.png')划线处①语句是调用jieba对象的cut函数对变量为text的文件进行分词,则该处语句为 。 (4)得到的标签云如图所示。该图片的文件名是 ,表现该文本特征的是 。(至少写出3个) 答案 (1)采集信息 (2)C (3)jieba.cut(text)(4)b.png;我、的、着、了、绿、你专题综合练题组一1.(2023十校联盟联考,5)近年来,各地相继出现了一些无人售货超市,其购物流程为:通过微信号/支付宝注册→扫码或扫脸开门→选购商品→结算区显示屏清单确认(智能检测)→开门即走(智能扣款)。整个过程快捷方便,达到无感支付。超市内24小时利用摄像头监控,实行人脸识别防盗监控,发现有小偷将自动抓拍报警并列入黑名单,通过RFID技术+核心软件算法有效识别和定位货损源头,并进行有效处理和防范。此外,超市也会依靠大数据、云计算技术,对各种商品的销售状况进行汇总分析,并智能判断客户的购买习惯进行产品推荐,还能预测销售走势,给商家提供合理的建议。根据阅读材料,下列说法正确的是( )A.汇总分析已完成的商品销售状况数据属于流数据B.无人售货超市依靠大数据处理只需要分析最近几个月的抽样数据C.根据客户账号的购买习惯进行产品推荐,不需要知道用户购买商品的原因D.无人售货超市中的每一个数据都来自真实数据,体现了大数据价值密度高的特点答案 C 2.(2023舟山高二期末,12)小明用下列Python程序将图a处理成图b所示效果,发现处理后的图像不理想,他要想将图像处理成图c所示效果,则可做的修改是( ) from PIL import Image#第0行import numpy as np#第1行import matplotlib.pyplot as plt#第2行img=np.array(Image.open ('dj.jpg').convert('L'))#第3行row,cols=img.shape#第4行for i in range(row):#第5行 for j in range(cols):#第6行 if img[i,j]>188:#第7行 img[i,j]=1 #1表示白色#第8行 else:#第9行 img[i,j]=0 #0 表示黑色#第10行 plt.figure('dj')#第11行 plt.imshow(img,cmap='gray')#第12行 plt.axis('off')#第13行plt.show ()A.将第7行中的数字188改成138B.将第7行中的数字188改成250C.将第7行中的>改成<D.将第8行的代码与第10行的代码互换答案 A 3.(2022杭州重点中学期中,13)小萧从国家统计局网站上收集了近几年国民总收入相关数据,并使用Excel软件进行相关数据处理与分析。部分界面如图a所示,请回答下列问题:(1)下列关于数据整理的描述,正确的是 (单选)。 A.某些缺失的数据可以自己随意估计一个值进行补充B.Excel表格中的异常数据可以直接删除或忽略C.Excel表格中的重复数据可以进行合并或删除D.Excel中格式不一致的数据,一般只保留一种格式的数据,删除其他格式的数据(2)图b的图表数据类型为 (选填:柱形图/条形图/折线图)。 图b(3)根据表格数据呈现,从2017年开始可以计算国民总收入增长比例,方法是在C8单元格输入公式 (计算公式:(当年国民总收入-去年国民总收入)/去年国民总收入),设置百分比格式后自动填充至F8单元格。 (4)除了Excel,可以进行数据分析的软件还有 (多选,填数字)。 ①Word ②SPSS ③SAS ④MATLAB⑤记事本 ⑥Python ⑦录音机答案 (1)C (2)柱形图 (3)=(C2-B2)/B2(4)②③④⑥4.(2022杭州八县市区期末,16)某次测试的Excel文件成绩表如图1所示。图1(1)已知有200名同学参加了本次测试。小明想把全体同学的信息平均分放在D202单元格,那么在 D202单元格输入的公式为 。 (2)现在要求用Python增加“总分”列数据,然后求每个班总分的平均分(如图2),最后绘制每班总分平均分的垂直柱形图(如图3)。请在程序划线①②处选择合适的代码(填字母)。图2图3import pandas as pdimport matplotlib.pyplot as plt#图表中文显示处理,代码略df=pd.read_excel("test.xlsx")score=[]for i in df.values:js= ① #①处请选择(填字母): A.df["信息"]+df["通用"]/B.i[3]+i[4] score.append(js)df["总分"]=scoredf1=df.groupby("班级".as_index=False)["总分"].mean()plt.title("期中技术平均分")plt. ② (df1["班级"],df1["总分"],width=0.5)#②处请选择(填字母): A.plot/B.bar/C.scatter答案 (1)=AVERAGE(D2:D201) (2)①B ②B5.(2022丽水期末,13)小明收集了本周信息技术学科学习评价的数据,如图所示。(1)观察上表小明做了如下操作,其中属于数据整理的是 (多选,填字母)。 A.删除重复行第五行B.验证并修改D2单元格数据C.通过公式计算全班平均分D.重新设置C3单元格格式(2)为了分析每个组的平均分,设计了如下Python程序。import pandas as pdimport matplotlib.pyplot as pltdf=pd.read_excel("成绩表.xlsx") print(df1)划线处的代码应为 (单选,填字母)。 A.df1=df.groupby("平均分").mean()B.df1=df.mean()C.df1=df.groupby("小组").mean()D.df1=df["小组"].mean()(3)利用Python程序绘制各小题得分率图表,如图所示。请在划线处填写合适的代码。num=int(input("请输入小组:"))plt.figure(figsize=(10,5))list=[]for i in range(12): s="题"+str(i+1) list.append(df1.at[num,s]*50)plt.bar(range(1,13),list)plt.title(str(num)+" ") plt.xlabel("question number")plt.ylabel("correct rate")plt.show()答案 (1)ABD (2)C (3)group6.(2024届A9协作体返校考,14)张三同学收集了一个地区8月各类共享单车的骑行数据记录,每天的用户数据存储于“shared bikes. xlsx”文件中,不考虑跨天数据。数据格式如图a所示,请回答下列问题:(1) cal函数功能为:读取骑行时间的小时和分钟部分,转换为分钟格式并返回,如“2022/8/20 6:57”获取“6:57”转换为417 (6*60+57=417), 代码如下。请在划线处填入合适的代码。def cal(s): n=len(s) for i in range(n): if s[i]==" ": #如果为空格字符 p=i if s[i]==":": q=i t= + int(s[q+1:]) return t(2)统计本月各类型单车的每天平均骑行时长,并绘制柱形图,代码如下,绘制的图表如图b所示,请在划线处填入合适的代码。import pandas as pdimport matplotlib.pyplot as pltdf=pd.read_excel ("shared bikes.xlsx")bike=["哈罗单车","摩拜单车","美团单车","青桔单车"]sm=[0]*4avg=[0]*4days=31for i in ① : t=cal(df.at[i, "结束时间"]) - cal (df. at[i, "开始时间"]) for j in range(4): if df.at[i,"App 类型”]==bike[j]: ② breakfor i in range(4): avg[i]=sm[i]/ daysplt.figure(figsize=(12, 4))x=bikey= ③ plt.bar(x, y)plt.show()(3)统计本月各类型单车的骑行次数,加框处代码有错,可以改正为 (选填字母:A.max()/B.min()/C.mean()/D.count())。 n=df. groupby("App类型",as_ index=True).用户编号.sum ()答案 (1)int(s[p+1:q])*60 (2)①df.index或range(len(df)) ②sm[j]+=t ③avg (3)D7.(2024届绍兴诊断性测试,14)学校暑期开展“青春迎亚运”活动,邀请高二学生每日参加运动锻炼并进行线上打卡。每周收集一次相关数据,分别保存在相应的xlsx文件中,部分文件如图a所示。每个文件记录了一周7天的打卡数据,示例如图b所示,其中运动时长单位为分钟。为统计分析学生锻炼情况,给出周报数据,编写Python程序,请回答以下问题:(1)定义px函数,功能为:读取某一周的打卡数据,将其按班级进行排序操作并返回结果。函数代码如下,将划线处代码补充完整。import pandas as pddef px(file_week): df=pd.read_excel(file_week) df=df.sort_values( ,ignore_index=True) #按班级升序排序,参数ignore_index=True表示更新索引 return df(2)统计某一周各运动项目的参与人次,并绘制柱形图,如图c所示,部分Python代码如下:import matplotlib.pyplot as plts=input("请输入文件名: ")df=px(s)df1=df.groupby("运动项目".as_index=False). ① #统计各运动项目参与人次 df1.rename(columns={"学号":"参与人次"},inplace=True) #更改列标题plt.bar( ② ) plt.xlabel("运动项目")plt.ylabel("参与人次")plt.show()划线处应填入的代码为 (单选,填字母)。 A.①count() ②df1["参与人次"], df1["运动项目"]B.①sum() ②df1["参与人次"], df1["运动项目"]C.①sum() ②df1.运动项目, df1.参与人次D.①count() ②df1.运动项目, df1.参与人次(3)统计某一周每班各学生的总运动时长后,比较得出该周每班最高的两位时长,部分Python程序代码如下,请在划线处填入合适的代码。qp=[[0 for i in range(m)]for j in range(n)]'''定义数组qp记录每班各学生一周运动总时长,n为班级数,m为每班人数。其中qp[0][0]~qp[0][m-1]存储1班1号~m号同学的每周运动总时长,依次类推,qp[n-1][0]~qp[n-1][m-1]存储n班1号~m号同学的每周运动总时长。'''print("本周每班最高的两位时长分别为: ") i=0 while i num=df["学号"][i]cla=df["班级"][i] ① if i!=0 and df["班级"][i]!=df["班级"][i-1] or ② : cla=df["班级"][i-1]k1=0;k2=0for j in range(1,len(qp[cla-1])): if qp[cla-1][j]>qp[cla-1][k1]: ③ k1=j elif qp[cla-1][j]>qp[cla-1][k2]: k2=jprint(cla,"班",qp[cla-1][k1].qp[cla-1][k2])i=i+1(4)统计某一周各运动项目的参与人次后绘制柱形图如图c所示,由图可知,该周参与人气最高的运动项目为 。 答案 (1)"班级" (2)D (3)①qp[cla-1][num-1]+=df["运动时长"][i] ②i==len(df)-1 ③k2=k1 (4)跑步8.(2024届宁波模拟,13)已知某年级有6个班级,所有学生名单存储在文件“name.csv”中(如图1),学校举行某趣味活动项目中,需要每个班抽3名代表参加比赛,请编写一个随机抽取程序,执行效果如图2。请回答以下问题: (1)加框处代码的作用是 。 (2)实现上述功能的部分Python程序如下,请在划线处填写合适的代码。import csvimport random #数据读入f=open("name.csv","r")flines=csv.reader(f)name_list=[]m=6 #班级总数total=18 #参赛总人数for line in flines:if line[0]=="班级":continue #跳过当前循环的剩余语句,继续进行下一次循环name_list.append(line) ① flag=[False]*ngrade=[3]*mi=0while i p=random.randint( ② , ③ ) bj=int(name_list[p][0]) if flag[p]==False: if grade[bj-1]>0: flag[p]=True ④ i+=1print("抽取名单为: ")print("班级","姓名")for i in range(n):if flag[i]: print(name_list[i][0],name_list[i][1])f.close()答案 (1)列表name_list中的数据不包括标题行 (2)①n=len(name_list) ②0 ③n-1 ④grade[bj-1]-=19.(2023杭州地区重点中学联考,14)小明利用“在线社团报名系统”收集了全校学生的社团报名信息,并将报名数据导出到“社团报名.xlsx”中,如图1所示。然后编写Python程序对报名数据进行处理,生成分别以班级名和社团名为文件名的 Excel 文件,以便分发给相应的社团指导老师和班主任。(1)在对表格进行数据整理时发现,关于“Jacky.Y” 同学的记录可能存在的数据问题是 (选填:A.数据缺失 B.数据异常 C.逻辑错误 D.数据格式不一致)。 (2)其中生成每个社团名单文件的过程是:先对报名数据按社团名称进行分类,并对选报同一社团的学生按班级进行升序排序,然后生成各个社团名单文件,如图 2所示。对应的程序代码如下,请在划线处填写合适的代码。 import pandas as pd def read_file(filename): #读入报名数据的原始文件,并将表中的数据转换成列表,代码略 def save_file(a): #保存名单到相应社团的Excel电子表格文件 df=pd.DataFrame(a,columns=["班级","姓名","选报社团"]) df.to_excel( ① )+".xlsx",index=False) a=read_file("社团报名.xlsx") n=len(a) #按社团名(参照拼音的字母顺序)进行升序排序,代码略 #统计各社团人数,存在列表 rs 中,rs=[["滑板社",36],…],代码略 s=0 for i in range(len(rs)): ② left,right=s, s+num-1 while left < right: imin=imax=left for k in range(left+1,right+1): if a[k][0] < a[imin][0]: imin=k elif a[k][0] > a[imax][0]: imax=k if imin !=left: a[imin],a[left]=a[left],a[imin] if imax==left: ③ if imax !=right: a[imax],a[right]=a[right],a[imax] left=left+1; right=right-1 ④ s+=num答案 (1)B (2)①a[0][2]或df.at[0,"选报社团"] 或 df["选报社团"][0] ②num=rs[i][1] ③imax=imin ④save_file(a[s:s+num])题组二1.(2022诸暨期末,4)使用pandas编程处理数据DF1,下列选项能实现行列转置操作的是( )A.DF1.T B.DF1.columnsC.DF1.values D.DF1.index答案 A 2.(2022宁波奉化期末,9) 有如下Python程序段:import pandas as pds=pd.Series(range(5,11,3))s[1]=15print(s)该程序执行后,输出的结果是( )1 15 2 8 dtype: int64 0 5 1 15 dtype: int64 1 15 2 8 3 11 dtype: int64 0 5 1 15 2 11 dtype: int64 A. B. C. D.答案 B 3.(2022宁波咸祥中学期中,16)小明收集了某超市饮料销售情况相关数据,并使用Excel软件进行处理,如图a所示。请回答下列问题:(1) 区域 I3:I15 的数据是通过公式计算得到的。在I3单元格输入公式后, 用自动填充功能完成 I4:I15 的计算,则I3单元格中的公式是 。 (占销售总额百分比=销售额(元)/销售总额(元)) (2)若因误操作将 I16 单元格删除,则 I3 单元格会显示 (选填字母:A.#VALUE B.#DIV/0! C.###### D.#REF! )。 (3)要将类别为“可乐”的饮料以“毛利润(元)”为主要关键字降序排序, 则选择排序的区域为 。 (4)小王根据图 a 中的数据,制作了一张反映橙汁类饮料销售额和毛利润对比的图表,如图b 所示,则建立该图表的数据区域是 。将E8单元格数值修改成6.00,是否会影响该图表 (选填:是/否) 图b答案 (1)=G3/$I$16或=G3/I$16 (2)B (3)B8:I11(4)B2,G2:H2,B5:B7,G5:H7;否4.(2022台州启超中学期中,16)APP活跃人数数据存储在“app.xlsx”文件中,如图所示,现要编程统计结果,请回答下列问题:若要把“app.xlsx”第1张工作表中的信息导入到book1对象中,并进行统计,实现这个功能的Python代码如下,在程序划线处填入合适的代码。import pandas as pdbook1= (1) #读取app.xlsx文件数据,并存储在book1对象中 book1_sum= (2) #计算10月人数之和book1_aver= (3) #计算11月人数平均值book1_g= (4) #按应用领域分组统计book1_sort= (5) #按11月人数值,降序排序print("10月人数之和:",book1_sum)print("11月人数平均值:",book1_aver)答案 (1)pd.read_excel("app.xlsx") (2)book1["10月人数"].sum() (3)book1["11月人数"].mean()(4)book1.groupby("应用领域")(5)book1.sort_values("11月人数",ascending=False)5.(2022宁波奉化期末,14)小孙收集了2016年到2020年的各地区粮食生产总量并存储在“lscl.xlsx”文件中,如图a所示,现使用Python对其进行数据处理,并实现数据可视化,绘制的图表如图b所示。实现如上功能的代码如下,请回答以下问题。import pandas as pdimport matplotlib.pyplot as pltplt.rc('font', **{'family': 'SimHei'})#设置中文字体df=pd.read_excel("lscl.xlsx")df. ① ("2020年",ascending=False,inplace=True) df1=df.head(10)x= ② y=df1["2020年"]plt.figure(figsize=(8,6))plt. ③ ("2020年粮食产量TOP10") plt.bar(x,y,label="2020年")plt.xlabel("地区")plt.legend() ④ (1)请在划线处填入合适的代码语句,以实现以上功能。(2)代码语句“plt.bar(x,y,label="2020年")”的功能为绘制如图b所示的图像,能够实现相同功能的语句是 (多选题,少选得1分,多选不得分)。 A.df.head(10).plot("地区","2020年")B.df[:10:].plot("地区","2020年",kind="bar")C.plt.plot(x,y,label="2020年",kind="bar")D.plt.bar("地区","2020年",label="2020年")E.df1.plot("地区","2020年",kind="bar")答案 (1)①sort_values ②df1["地区"] 或 df1.地区③title ④plt.show() (2)BE6.(2022杭州场口中学、桐庐富春中学检测,16)在月考之后,学校教务员拿到了高一年级月考的基础成绩并用Excel软件进行数据处理,如图1所示。请回答下列问题:图1(1)区域M2:M645的数据是通过在M2单元格输入公式并自动填充得到的,则M645单元格中的公式是 。 (2)为了分析各班级的数学平均分,设计了如下Python程序,利用其绘制各班数学平均分图表,如图2所示:结合上图的效果,请在程序划线处填写合适的代码。import matplotlib.pyplot as pltimport pandas as pddf=pd.read_excel('高一月考成绩.xlsx')df1=df.groupby("班级"). ① plt.bar(df1.index, ② ) plt.title("高一各班数学平均分")plt.ylim(40,100)plt.xlabel( ③ ) plt.ylabel("分数")plt.show()答案 (1)=SUM(D645:L645) (2)①mean() ②df1.数学 ③"班级"7.(2023 三月百校联考,14)李明收集了梅西2004年至2022年俱乐部比赛数据,保存在“梅西俱乐部详细比赛数据.xlsx”文件中,部分数据如图a所示,现在利用pandas模块处理数据。(1)梅西2004年10月—2021年7月效力于巴塞罗那俱乐部,2021年8月转会至巴黎圣日耳曼俱乐部,现在李明想知道梅西每个赛季的胜率,实现上述功能的Python程序如下,请在划线处填入合适的代码。 import pandas as pd import matplotlib.pyplot as plt df=pd.read_excel("梅西俱乐部详细比赛数据.xlsx") df['年']=pd.to_datetime(df["时间"]).dt.strftime('%Y').astype(int) df['月']=pd.to_datetime(df["时间"]).dt.strftime('%m').astype(int) df['胜负情况']=" " for i in range(len(df)): f=True;z=0;k=0 for c in df["比分"][i]: if ① : if f: z=z*10+int(c) else: k=k*10+int(c) else: f=not f jlb="巴塞罗那" if df["年"][i]*100+df["月"][i]>=202108: ② if (df["主队"][i]==jlb and z>k) or (df["客队"][i]==jlb and z df['胜负情况'][i]="胜" elif z==k: df['胜负情况'][i]="平" else: df['胜负情况'][i]="负" g=df.groupby(df["年"],as_index=True).count() ③ g1=df1.groupby(df1["年"],as_index=True).count() g["胜率"]=g1["胜负情况"]/g["胜负情况"]*100(2)图b为2004—2022年梅西俱乐部比赛胜率统计图。2004-2022年梅西俱乐部比赛胜率统计 plt.plot( , marker='^') plt.title("2004-2022年梅西俱乐部比赛胜率统计") plt.show()方框处代码为 (多选:填字母)。 A.g["年"],g["胜率"] B.g["年"],g.胜率C.g.index,g["胜率"] D.g.index,g.胜率答案 (1)①c!="-" 或c>="0" and c<="9" ②jlb="巴黎圣日耳曼" ③df1=df[df['胜负情况']=="胜"] (2)CD8.(2022湖州三贤联盟期中,14)小张同学为了更好地了解冬奥会,从网上收集了历届冬奥会各个项目比赛信息,收集到的部分数据如图1所示。图1图2为分析数据,小张编写了如下程序:import pandas as pdimport matplotlib.pyplot as pltfrom matplotlib.pyplot import MultipleLocatorplt.rcParams['font.sans-serif']=['SimHei'] #正常显示中文标签df=pd.read_csv("dongao.csv")#删除所有未获得奖牌的记录,并将奖牌列中的"G"修改为"金牌","S"修改为"银牌","B"修改为"铜牌"jp={'G':'金牌','S':'银牌','B':'铜牌'}for i in df.index: if ① : df=df.drop(i) else: df.at[i,'奖牌']=jp[df.at[i,'奖牌']]#对输入国家每届的奖牌数进行统计,并制作相应图表,如图2所示nt=input("请输入国家名称:")df1=df[df['国家']==nt] df3=pd.DataFrame(df2) #将分组后数据生成新的二维结构,索引为“届次”,列标题为“奖牌”x=df3.indexy= ② plt.title(nt+"历届冬奥会奖牌趋势图")plt. ③ (x,y) plt.show()(1)在划线处填上合适的代码。(2)为了能显示某国历届冬奥会奖牌变化,需在加框处添加的语句为 (多选)。 A.df2=df1.groupby('奖牌')df2=df1.届次.count()B.df2=df1.groupby('届次')df2=df2['奖牌'].count()C.df2=df1.groupby('奖牌')['届次'].count() D.df2=df1.groupby('届次').奖牌.count()答案 (1)①df.at[i,'奖牌']=='0'或 df.奖牌[i]=='0'或 df['奖牌'][i]=='0' ②df3["奖牌"]或 df3.奖牌 ③plot (2)BD9.(2023十校联盟联考,14)小明从网上下载了豆瓣图书1900—2017年间出版的图书数据,存储在Excel文件中,如图a所示,数据表已按出版年份升序排好,包含书名、作者、出版社、出版年份、价格、评分以及评论数量。他要编写一个Python程序快速对图书数据进行分析。(1)为了求评论数量累计最高的作者及其出版的图书平均评分,小明需要对图a所示的表中数据进行整理,则下列说法正确的是 (多选,填字母)。 A.第3行和第4行数据重复,删除其中一行即可B.通过检测发现F56168单元格的数据存在错误,应进行修正C.删除“出版社”和“出版年份”两列数据,不影响分析结果D.“评分”及“评论数量”为0的数据没有任何价值,可以直接删除(2)小明利用整理好的数据,编写并运行程序,结果如图b所示。作者 评论数量0 [日]村上春树 679101.01 [日]东野主吾 664106.02 韩寒 623116.03 郭敬明 620571.04 [英]J.K.罗琳 462476.0评论数量累计最多的作者是:[日]村上春树 共出版了34部作品,平均评分为8.01图b实现上述结果的Python程序如下:import pandas as pddf=pd.read_excel("books.xlsx")df1=df.groupby("作者", as_index=False)df2=df1.评论数量.sum()dfsort=df2.sort_values("评论数量" ,ascending=False,ignore_index=True)print(dfsort.head(5))#输出评论数量累计前五名作者top= ① dfbk=df[df.作者==top]#根据作者检索出相应的作品avg=dfbk.评分.mean()print("评论数量累计最多的作者是:", top)print("共出版了", ② ,"部作品,平均评分为" , round(avg,2)) 则程序中划线①②处应填入的代码为:① ; ② 。 答案 (1)BC (2)①dfsort.at[0,"作者"]或dfsort["作者"][0]或其他等价答案 ②len(dfbk)或dfbk.书名.count()或dfbk["书名"].count()10.(2024浙江1月选考,14,7分)某学院举行运动会,比赛设跳高、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程序如下,请在程序中划线处填入合适的代码。import pandas as pdimport matplotlib.pyplot as plt#读取如图b 所示数据,保存到DataFrame对象df1中,代码略f=[9,7,6,5,4,3,2,1]for i in range(0,len(df1)):rank=df1.at[i,"名次"] #通过行、列标签取单个值score=0if rank<=8: df1.at[i,"得分"]=score(3)根据上述df1中的得分数据,统计各专业总分,绘制如图c所示的柱形图,实现该功能的部分Python程序如下:df2=df1.groupby(" ",as_index=False).sum() #分组求和 #设置绘图参数,代码略plt.bar(x,y) #绘制柱形图①请在程序中划线处填入合适的代码。②程序的方框中应填入的正确代码为 (单选,填字母)。 A.x=df1["专业"]y=df1["总分"]B.x=df2["专业"]y=df2["得分"]C.df1["专业"]="专业"df1["总分"]="总分"D.df2["专业"]="专业"df2["得分"]="得分"答案 (1)A (2)score=f[rank-1]或score=f[int(rank)-1] (3)①专业 ②B21世纪教育网 www.21cnjy.com 精品试卷·第 2 页 (共 2 页)21世纪教育网(www.21cnjy.com) 展开更多...... 收起↑ 资源预览