高效作业17 第17课 编程处理数据-【精彩三年】2024-2025学年高中信息技术必修第一册课程探究与巩固Word教参(浙教版2019)

2025-11-15
| 19页
| 50人阅读
| 8人下载
浙江良品图书有限公司
进店逛逛

资源信息

学段 高中
学科 信息技术
教材版本 高中信息技术浙教版必修1 数据与计算
年级 高一
章节 4.2 大数据处理
类型 作业-同步练
知识点 大数据分析和处理
使用场景 同步教学-新授课
学年 2024-2025
地区(省份) 全国
地区(市) -
地区(区县) -
文件格式 DOCX
文件大小 6.44 MB
发布时间 2025-11-15
更新时间 2025-11-15
作者 浙江良品图书有限公司
品牌系列 精彩三年·高中同步课程探究与巩固
审核时间 2025-07-29
下载链接 https://m.zxxk.com/soft/53249908.html
价格 3.00储值(1储值=1元)
来源 学科网

内容正文:

高效作业17[第17课 编程处理数据【A级 新教材落实与巩固】 1.某饭馆2024年2月的订餐数据保存在文件“ddsl.xlsx”中,部分数据如图1所示。编写Python程序来统计2月订餐最多的3种菜品,并使用图表呈现统计结果(并列前3的菜品均显示)。 图1 请回答下列问题。 (1)由图2可知,该饭馆有__3__个菜品并列第三。 图2 实现上述功能的Python程序段如下: import pandas as pd df=pd.read_excel(”ddsl.xlsx”) #读取文件中的数据 df=df.drop([”日期”,”订单号”,”单价”,”金额”],axis=1) #删除列 dfg=df.groupby(”①__菜品__”,as_index=False).sum() #分组求和 #升序排序 dfg=②________ plt.bar(dfs[”菜品”],dfs[”份数”]) # 设置图表样式,显示图表,代码略 (2)请在程序段中横线①处填入合适的代码。 (3)程序段中加框处应填入的代码为__D__(单选,填字母)。 A.dfs=df.sort_values(”份数”,ascending=True) B.dfs=df.sort_values(”份数”,ascending=False) C.dfs=dfg.sort_values(”份数”,ascending=True) D.dfs=dfg.sort_values(”份数”,ascending=False) (4)下列选项能实现程序段中横线②处功能的有__CD__(多选,填字母)。 A.dfs[0:3] B.dfs.head() C.dfs[dfs.份数>=dfs]”份数”][2]] D.dfs[dfs.份数>=dfs.at[2,”份数”]] 【解析】 (1)由图2可知,有3个并列第三。 (2)根据题干要求“统计2月订餐最多的3种菜品”,结合图2与语句“plt.bar(dfs[”菜品”],dfs[”份数”])”可知,分组依据是“菜品”。 (3)根据图2可知是对分组结果按份数进行降序排序,分组后的对象名为dfg,选项D正确。 (4)要求显示订餐最多的3种菜品,并列前三的菜品均显示,选项A、B只能有3种,没有考虑并列问题,选项C、D正确。 2.小杨妈妈的生日快到了,他存了500元,想从性价比的角度选出最合适的礼物送给他的妈妈。他收集了适合送给妈妈的礼物清单,并存储在Excel表格中。请回答下列问题。 (1)整理好的礼物清单(“gifts.xlsx”)如图1所示,且性价比已计算。在计算每个商品的性价比时,可以先在E2单元格中输入公式__=G2/C2*100__,然后用自动填充功能完成其他单元格的计算。(提示:性价比=性能分值/价格×100) 图1 图2 (2)下列Python程序用于统计图1中价格不超过500元的性价比最高的10种商品,并绘制出柱形图,如图2所示。请在横线处填入合适的代码。 import pandas as pd import matplotlib.pyplot as plt from pylab import mpl #设置中文显示 mpl.rcParams[”font.sans-serif”]=[”SimHei”] mpl.rcParams[”axes.unicode_minus”]=False df=pd.read_excel(”gifts.xlsx”) df=①__df.drop(”产品参数”,axis=1)__#删除“产品参数”列数据,通过axis=0/1确定行列 df1=df[df[”价格”]<=500] df2=__②df1.sort_values(”性价比”,ascending=False).head(10)或其他等价答案__ #将df1按“性价比”降序排序后取前10个,ascending=True表示升序 df2.index=df2[”商品编号”] #根据df2中的数据绘制柱形图 plt.title(”性价比最高的10种商品”,fontsize=16) #设置图表标题和标题文字大小 plt.xlabel(”商品编号”,fontsize=12) plt.ylabel(”性价比”,fontsize=12) plt.xticks(rotation=30,fontsize=12)#设置X轴标签旋转角度和文字大小 plt.show() (3)要绘制如图2所示的柱形图,第(2)题程序中加框处应填入的代码为__BD__(多选,填字母)。 A.plt.bar() B.plt.bar(df2[”商品编号”],df2[”性价比”]) C.df2[”性价比”].plot(df2[”商品编号”]) D.df2[”性价比”].plot(kind=”bar”) 【解析】 (1)由提示(性价比=性能分值/价格×100)可知。 (2)①删除“产品参数”列数据,使用drop()函数,需要指明列名,及axis设置为1。 ②排序使用sort_values()函数,ascending=False表示降序,使用head(10)取前10项。 (3)绘制柱形图采用bar()函数。 3.小胡从网站上收集了某年浙江省各地市气象台发布的预警数据,数据集格式如图所示。 请回答下列问题。 (1)为分析各气象台的预警数据,小胡编写了如下Python程序。若要了解该年暴雨预警次数超过15次的气象台情况,请在横线处写出两种实现方式:①__①print(df[df[”暴雨”]>15])__;② __print(df[df.暴雨>15])__。 import pandas as pd import matplotlib.pyplot as plt df=pd.read_csv('data_weather.csv') ________________ (2)若要了解该年没有出现的极端天气的情况,并把这些天气预警数据列从数据表中去除,请在横线处填入合适的代码。 for i in df.columns[2:]: if__df[i].sum()==0__: df=df.drop(i,axis=1) #删除指定列 (3)若要做一个该年浙江省各地市台风天气的分析汇报,针对各地市的台风发生次数进行分析比较,小胡添加如下程序段: df2=df.groupby('市区',as_index=False).sum() plt.figure(figsize=(10,5)) ________________ plt.xlabel('市区') plt.ylabel('台风预警次数') plt.title('某年各地市台风预警情况') plt.show() 程序段中横线处应填入的代码为__A__(单选,填字母)。 A.plt.bar(df2.市区,df2.台风) B.plt.bar(df2.index,df2.台风) C.plt.plot(df2.columns[:],df2.台风) D.plt.plot(df2.index,df2.台风) 【解析】 (1)对象df的暴雨列进行条件检索操作有①字典法:对象名['列标题'];②属性法:对象名.列标题。 (2)用sum()函数进行求和,列索引从0开始,天气情况从索引2开始求和,如果和为0,则删除相关列。 (3)需要比较不同地市的台风天气情况,使用bar()函数绘制柱形图比较适合,df2.index按行输出,选项A正确。 4.2024·龙泉一中检测小明收集了本周信息技术学科学习评价的数据,如图1所示。 图1  请回答下列问题。 (1)观察图1后,小明做了如下操作,其中属于数据整理的是__ABD__(多选,填字母)。 A.删除重复行第五行 B.验证并修改D2 单元格的数据 C.通过公式计算全班的平均分 D.重新设置C3 单元格格式 (2)为了分析每个组的平均分,小明设计了如下Python 程序段: import pandas as pd import matplotlib.pyplot as plt df=pd.read_excel(”成绩表.xlsx”) ________________ print(df1) 程序段中横线处应填入的代码为__C__(单选,填字母)。 A.df1=df[”小组”].mean() B.df1=df.mean() C.df1=df.groupby(”小组”,as_index=False).mean() D.df1=df.groupby(”平均分”,as_index=False).mean() (3)利用Python 程序绘制指定小组的各小题得分率图表,如图2所示,请在横线处填入合适的代码。 图2  num=int(input(”请输入小组: ”)) plt.figure(figsize=(10,5)) list1=[] for i in range(12): s=”题”+str(i+1) list1.append(df1.at[num-1,s]/2*100) list2=list(range(1,13)) plt.__bar(list2,list1)__ plt.title(str(num)+”group”) plt.xlabel(”question number”) plt.ylabel(”correct rate”) plt.show() 【解析】 (1)通过公式计算全班平均分,不属于数据整理。 (2)按小组进行分组,选项C正确。 (3)绘制柱形图使用bar()函数,list1为各小组平均分,list2为小组编号。 5.2024·教改共同体联盟检测小明收集了超市2023 年1 月的线上订单数据,并将其存储在“超市销售数据.xlsx”中,部分界面如图1所示。 图1 请回答下列问题。 (1)当前原始数据中存在哪些需要更改的数据问题?应如何修改?(写出一种即可)  问题一:“单位”列中的单位内容没有统一, 有些是“KG”,有些是“千克”。 做法:将所有的“KG”都更改成“千克”。 问题二:部分数据缺失, 例如G8单元格、F15单元格等。 做法:按照内容核实后补齐。 问题三:部分数据异常,例如I11单元格,商品单价为99999。 做法:按照内容核实后进行更改。 。 (2)当前Excel表中需要计算订单中每种商品的销售金额(销售金额=销售数量×商品单价),在J2 单元格中输入公式__=H2*I2____,并自动填充到下方的单元格中。 (3)小明想要求出最畅销的10种洗化类商品,运用Python 处理数据后的效果如图2所示。 图2 部分Python代码如下,请在横线处填入合适的代码。 import pandas as pd import matplotlib.pyplot as plt df=pd.read_excel(”超市销售数据.xlsx”) plt.re(”font”,**{”family”:”SimHei”}) #设置字体 df=df[df[”商品类别”]==”洗化”]        #筛选出洗化类商品 g=df.groupby(”商品名称”).sum() __g=g.sort_values(”销售数量”,__ascending=False)[0:10]plt.bar(g.index,g[”销售数量”])或__g=g.sort_values(”销售数量”,ascending=False).head(10)plt.bar(g.index,g.销售数量)或其他等价答案__# plt.title(”最畅销的10种洗化类商品”) plt.xlabel(”洗化类商品”) plt.ylabel(”销售数量”) plt.show() 【解析】 (1)主要考查数据整理的内容。 (2)用公式计算时, 需要注意等号及乘号的书写。 (3)根据题意需求出最畅销的10种洗化类商品, 因此在筛选出洗化类商品后,需要按照销售数量进行降序排序,同时绘制柱形图。 6.小蓝利用Excel收集了某年世界杯小组赛各支球队的相关数据,并保存在“世界杯.xlsx”文件中,如图1所示。然后他利用pandas模块进行数据处理,分析小组赛中各球队的表现。(提示:世界杯小组赛共分成8个小组,每个小组4支球队,组内各队之间进行1场比赛,每支球队共比赛3场) 图1 请回答下列问题。 (1)小蓝在处理数据前,首先进行了数据整理,则下列操作正确的是__AD__(多选,填字母)。 A.E4单元格中的数据存在逻辑错误,需要改成3 B.第7行的数据与第8行的数据重复,直接删除其中一行即可 C.英格兰队的所在行存在数据缺失,故无法确定具体的数值 D.阿根廷所在小组的组别格式不一致,应当将其改成C (2)小蓝利用pandas模块处理图1中的表格数据,其中部分Python程序代码如下。在处理数据的过程中,小蓝提出了以下3项要求。请根据他的要求在横线处填入合适的代码。 ①首先计算各球队的小组赛积分。积分计算规则为:胜一场得3分,平局得1分,负一场得0分。 ②然后对各球队进行小组排名。小组排名规则为: 按积分降序排序。 ③最后统计各小组的平均进球数,并绘制成如图2所示的图表。 图2 import pandas as pd import matplotlib.pyplot as plt plt.rcParams['font.sans-serif']=['SimSun'] #图表显示中文 df=pd.read_excel('世界杯.xlsx') df['积分']=①__df.胜*3+df.平__或其他等价答案__ dfrank=df.sort_values(②__'积分'__或by='积分'____,ascending=False) print(dfrank) df2=df.groupby('组别').mean() plt.bar(③__df2.index,df2.进球__或其他等价答案__,label='平均进球') plt.legend() plt.show() (3)小蓝要从df中筛选出积分至少为4分且进球多于失球的球队,下列操作可行的是__BC__(多选,填字母)。 A.df.净胜球>0 and df.积分>=4 B.df[df['净胜球']>0][df['积分']>=4] C.df[(df.净胜球>0)&(df.积分>=4)] D.df[df['净胜球']>0]&df[df['积分']>=4] 【解析】 (1)同小组比赛3场,胜和平都是0场,由此可以看出卡塔尔队负为3 场,选项A正确;重复数据要在审查的基础上合并后删除,选项B错误;美国队平2 场,威尔士平1 场,伊朗1 胜2 负,说明美国对英格兰1 场为平,则可确定英格兰1 平0 负,选项C错误;选项D正确。 (2)由题干的积分规则,可知①空填:df.胜*3+df.平。 ②空按积分降序排序,填:'积分'或by='积分'。 ③观察图表,可知数组源应来自df2,由于df 按组别进行分组求平均进球时,默认分组字段为索引,因此图表的X 轴数据来自df2.index,Y 轴为df2.进球,填:df2.index,df2.进球。 (3)DataFrame 中进行多条件筛选时,条件之间可以用“&”连接,表示“且”的关系,选项C 正确;选项B 先用df[df['净胜球']>0]操作筛选出所有进球多于失球的球队,得到一个DataFrame 对象,再把这个对象看作整体,使用[df['积分']>=4]操作,就能够得到同时满足这两个条件的球队。故选项B 正确,选项A、D 错误。 7.2024·宁波中学检测 小林在制订出游计划前收集了浙江省内各“A级”景区数据,部分数据如图1所示。为了对比各地市“AAAA级”及以上景区的数量,小林编写了如下 Python 程序。请回答下列问题。   图1 (1)观察图1中“等级”列数据,该列数据存在的问题是__D__(单选,填字母)。 A.数据缺失     B.数据重复 C.逻辑错误 D.格式不一致 (2)小林先对数据进行整理,然后统计各地市“AAAA级”及以上景区的数量并按数量降序排序,程序如下,请在横线处填入合适的代码。 import pandas as pd import matplotlib.pyplot as plt df=pd.read_excel(”浙江“A级”景区.xlsx”) df=df.drop([”电话”,”景区编码”],①__axis=1__) # 删除不必要的列 for row in range(len(df)): #整理“等级”列数据    grade=df.at[row,”等级”]    if ”1”<=grade[0]<=”9”:  df.at[row,”等级”]=”A” *int(grade[0]) df2=df[②__df[”等级”]或df.等级__>=”AAAA”] dfg=df2.groupby(”地市”).count() dfg=dfg.rename(columns={”等级”:”数量”}) # 重命名列名称 dfg.③__sort_values__(”数量”,ascending=False,inplace=True) (3)小林将排序后的结果绘制成柱形图,结果如图2所示。 plt.figure(figsize=(8,4)) plt.rcParams[”font.sans-serif”]=[”SimHei”,”FangSong”] plt.title(”浙江“AAAA级”及以上景区的数量统计图”) for i in range(len(dfg)):    plt.text(i,dfg[”数量”][i]+1,dfg[”数量”][i]) plt.xlabel(”地市名称”) plt.ylabel(”数量”) plt.legend() plt.show() 图2 为实现上述功能,则上述程序中加框处可选的代码为__D__(单选,填字母)。 A.plt.plot(dfg[”地市”],dfg[”数量”],color=”orange”, label=”景区数量”) B.plt.bar(dfg[”地市”],dfg[”数量”],color=”orange”) C.plt.plot(dfg.index,dfg[”数量”],color=”orange”) D.plt.bar(dfg.index,dfg[”数量”],color=”orange”,label=”景区数量”) 【解析】 (1)数据缺失是E 列存在的问题,数据重复是有多余的数据,逻辑错误是指数据不符合实际或不符合常识,B 列数据主要是“4A”和“AAAA”两种数据格式不一致的问题。选项D正确。 (2)第①空,由注释可知需要删除列数据,而drop()函数默认是删除行,因此这里需要指定axis=1的参数。表示“电话”“景区编码”是列名称。第②空需要根据此数据进行数据筛选,答案是df[”等级”]或df.等级。按“地市”进行了分组,统计了相同数据行各列数据的行数,把“等级”列的列名称重命名成了“数量”。而题目要求排序,因此第③空需要调用sort_values()函数进行排序。答案是sort_values。 (3)观察图表可知,图表类型是柱形图bar()而不是线形图plot(),因此可以排除选项A、C。由于第(2)题代码的第11 行,数据分组后“地市”一列数据已成为了索引,同时可观察到图表的横坐标是各地市的名称,因此bar()函数的第一个参数应是dfg.index,而不能是dfg[”地市”]。故选项D正确。同时,选项D由label 参数指明了图表的图例中的文本,而选项B没有。 【B级 素养形成与评价】 8.小明采集到了某市的共享单车在2023 年5 月10 日至24 日两周之内的使用情况的数据集,其中包括6 万多条出行记录,如图1 所示。 图1 请回答下列问题。 (1)小明编写Python程序来分析共享单车0 时~23 时骑行订单数分布情况,运行以下程序后的结果如图2 所示,请在横线处填入合适的代码。 图2 import pandas as pd import matplotlib.pyplot as plt plt.rcParams[”font.sans-serif”]=[”SimHei”] df=pd.read_csv(”data.csv”) df=df.drop([”用户ID”,”车辆ID”,”车辆类型”],axis=1) #删除无关的数据列 n=①__len(df)__ hour=[] #标记0 时~23 时(时,忽略分和秒),如18:46:05,即为18 时 for row in range(n): start_time=②__df.at[row,”骑行起始时间”]__ hour.append(int(start_time[0:2])) df[”0 时~23 时”]=hour #新增“0 时~23 时”列 result=df.groupby(”0 时~23 时”).count() plt.title(”共享单车0 时~23时骑行订单数分布情况”) plt.bar(③__result.index__,result.订单号) plt.xticks(result.index) plt.xlabel(”时”) plt.ylabel(”订单数量”) plt.show() (2)小明想进一步分析共享单车周末与工作日0时~23 时骑行订单数分布情况。已知2023 年5 月6日和7 日为周末,小明编写以下程序,实现新增“周末”列,周末值为1,工作日值为0,运行程序后的结果如图3 所示,请在横线处填入合适的代码。    图3           图4 isWeekend=[] #标记是否为周末 for row in range(n): start_date=df.at[row,”骑行起始日期”] d=①__int(start_date[-2:])__或其他等价答案__ if (d+1)%7==0 or d%7==0: #根据骑行起始日期来判断是否为周末 ②__isWeekend.append(1)__ else: isWeekend.append(0) df[”周末”]=isWeekend #新增“周末”列 print(df[[”骑行起始日期”,”周末”]].head(15)) (3)小明绘制了共享单车周末与工作日0时~23时骑行订单数分布情况的柱形图,如图4 所示。请结合柱形图,分析共享单车周末与工作日0 时~23时骑行订单数的分布情况,写出1条结论: ①23时~5时这段时间,周末和工作日基本一致,骑行订单数极少,说明使用单车出行的人数极少。 ②工作日,存在骑行早晚高峰,在7时~8时和17时~18时的上、下班时段。(11时~13时段,出现局部午高峰。) 周末骑行的时间分布相对平缓,没有明显的早晚高峰现象。 ③周末整体骑行订单数明显少于工作日的骑行订单数。 。 【解析】 (1)①根据range(n)可知,n 为数据对象df 中记录的数量,因此本空填写len(df),也可以填写df.订单号.count()或df[”订单号”].count()。 ②同样根据range(n)可以得到row 的取值范围为0~n-1,即数据对象df 的行号,start_time 为每一行,对应的骑行起始时间,故本空填写df.at[row,”骑行起始时间”],也可以填写df[”骑行起始时间”][row]。 ③本空所在代码实现绘制柱形图,需填横坐标,即“0 时~23 时”,由于分组时as_index 参数省略,分组对象“0 时~23 时”会作为索引存在结果result 中,本空填写result.index。 (2)①start_date 为每一行对应的骑行起始日期,d 为骑行起始时间中的最后两位,结合条件中d%7 可知d的数据类型应为整型,因此本空填写int(start_date[-2:])。 ②由于6日和7 日为周末,当条件成立时表示是周末,周末值为1,故本空应填写isWeekend.append(1)。 9.小明收集了某年全国各省份人均消费的相关数据,部分数据如图1 所示。为了统计分析各省份的消费情况,小明编写了如下Python 程序。请回答下列问题。 图1 (1)统计各区域超过全国总消费平均值的省份数量,请在横线处填入合适的代码。 import pandas as pd plt.rcParams[”font.sans——serif”]=[”SimHei”] df=pd.read_excel(”xiaofei.xlsx”) df[①__”总消费”____]=df.sum(axis=1) avg=df.总消费.mean() dic={”华北”:0,”东北”:0,”华东”:0,”华中”:0,”华南”:0,”西南”:0,”西北”:0} for i in ②__range(len(df))或range(0,len(df))__:    if df.总消费[i]>=avg:  dic[③__df.区域[i]或df[”区域”][i]____]+=1 (2)若要筛选出总消费最高的5 个省份,下列程序中横线处应填入的代码为__ABD__(多选,填字母)。 res=________ print(”总消费最高的5 个省份为: ”,list(res.省份)) A.df.sort_values(”总消费”,ascending=False).head(5) B.df.sort_values(”总消费”).tail(5) C.df.sort_values(”总消费”)[0:5] D.df.sort_values(”总消费”,ascending=False)[0:5] (3)统计并绘制该年全国各区域总消费平均值比较图,如图2 所示。部分Python 程序如下,请在横线处填入合适的代码。 import matplotlib.pyplot as plt df1=df.groupby(”区域”,as_index=True).mean() plt.bar(__df1.index__,df1.总消费) plt.title(”全国各区域总消费平均值比较图”) plt.ylim(20000,36000) plt.show() 图2 【解析】 (1)①由题意“统计各区域超过全国总消费平均值的省份数量”,结合下一句avg=df.总消费.mean()可知,①处是求“总消费”,即对所有数据按行求和。①处填:”总消费”。 ②处所在的循环遍历df 对象,判断每个总消费值是否超过ave 并做相应处理。②处填:range(len(df))或range(0,len(df))。 ③处以地区为键进行统计,填:df.区域[i]或df[”区域”][i]。 (2)消费最高的5 个省份,要么按总消费降序排序,选前5 个,或者按总消费升序排序,选后5,选项A、B、D 正确。 (3)从图表可以看出,X 轴数据来自于“区域”列。注意对df 分组时,设置了as_index=True 参数,即“区域”在分组后的df1 中成为了行索引,在引用其值时,要用df1.index。 10.采集某市2023年1月~10月空气质量数据如图1所示, 空气质量指数及指数等级信息如图2所示。 图1 空气质量指数 指数等级 0~50 优 51~100 良 101~150 轻度污染 151~200 中度污染 201~300 重度污染 >300 严重污染 图2 请回答下列问题。 (1)主程序如下,用于读取Excel数据文件, 根据输入的月份查询该月的空气质量指数数据, 进行处理后将其可视化,程序运行界面如图3所示。请在横线处填入合适的代码。 图3 import pandas as pd import matplotlib.pyplot as pit df=pd.read_excel(”hz2023.xlsx”) zhengli() #整理数据 while True: m=int(input(”请输入月份(1~10),输入0 结束: ”)) if m==0: break elif __m__in__range(0,11)__或__0<m<11__或1<=m<=10__: fenxi(m) else: print(”输入有误! ”) (2)编写整理数据函数zhengli(),根据空气质量指数来设置指数等级。请在横线处填入合适的代码。 def zhengli(): #整理数据 df[”Month”]=df[”日期”].dt.month #取出月份, dtype: int64 df[”Day”]=df[”日期”].dt.day df[”等级”]=”优” for i in df.index: t=df[”AQI”][i] if t>300: df[”等级”][i]=”严重污染” elif t>200: df[”等级”][i]=”重度污染” elif t>150: df[”等级”][i]=”中度污染” elif t>100: df[”等级”][i]=”轻度污染” __elif__t>50__: df[”等级”][i]=”良” (3)编写分析数据函数fenxi(), 根据给定月份, 分析该月的数据并可视化, 可视化结果如图4所示。请在横线处填入合适的代码。 图4 def fenxi(m): #分析m月数据 df_m=①__df[df.Month==m]__或df[df[”Month”]==m]__#查询对应月份数据 df_m=df_m.sort_values(”Day”) df_g=df_m[”Day”].groupby(df_m[”等级”]).count() print(df_g) x,y=②__df_m.Day,df_m.AQI__ pit.Figure() plt.xlabel(”Day”) plt.ylabel(”AQI”) pit.plot(x,y)#制作图表 pit.show() 【解析】 (1)程序支持查询1~10月的空气质量指数,输入月份在此范围内可正常查询。 (2)函数zhengli()实现的功能是根据AQI的值按照题干图2中的评级标准对空气质量进行评级, 表中51~100为良。当程序执行横线处的代码时,t<=100,故只需t>50。 (3)函数fenxi()实现对数据的可视化,绘制m月份的AQI 折线图。①空需要从所有数据中筛选出m月份的数据,故应填df[df.Month==m]或 df[df[”Month”]==m]。②空根据生成的折线图可以判断X轴表示m月的每一天,Y轴表示对应的AQI的值。 11.针对选考2024·玉环中学检测为了解不同班级间的信息技术的成绩差异,王老师搜集了某次周练的选择题部分数据,如图1所示。 (1)观察图1中的数据,下列操作中属于数据整理的是__AC__(多选,填字母)。 A.对重复的数据可进行合并处理 B.通过公式计算全班平均分 C.修正A78单元格的数据 D.若有缺失的数据,可采用随意数据来填充 图1 图2 (2)利用Python程序绘制图表,如图2所示,请在横线处填入合适的代码。 import pandas as pd import matplotlib.pyplot as plt plt.rcParams['font.sans——serif']=['SimHei'] plt.rcParams['axes.unicode_minus']=False df=pd.read_excel(”答题数据表.xlsx”) ans=df.values[0] df=df.drop(0) #删除df中第0行数据 for record in df.values: #遍历df中每一行的记录 for j in range(3,len(record)): if ①__record[j]==ans[j]__:    record[j]=100 else: record[j]=0 # 调整对应区域的数据格式 for col in df.columns[3:]: df[col]=df[col].astype(str).astype(int) df1=df.groupby(”班级”) data_avg=②__df1.mean()__或__df1.sum()/df1.count()__ #获取每个班级的各小题平均得分率 plt.figure(figsize=(10,5)) list1=[] #13班数据 for i in range(len(record)-4): list1.append(data_avg.at['13班','T'+str(i+1)]) list2=[] #7班数据 for i in range(len(record)-4): list2.append(data_avg.at['7班','T'+str(i+1)]) plt.plot(range(1,len(record)-3),list1,label=”13班”) plt.plot(range(1,len(record)-3),list2,label=”7班”) plt.title(”班级各题准确率对比图”) plt.xlabel(”题目编号”) plt.ylabel(”准确率”) ③__plt.legend()__ #显示图例 plt.show() 【解析】 (1)根据Excel 数据表中的数据可知,无法通过公式计算全班平均分,故选项B 错误;若有缺失的数据,通常采用平均值、中间值或概率统计值来填充缺失值,故选项D 错误。 (2)df 对象存放的是“答题数据表.xlsx” 中的数据,DataFrame 默认把Excel 表格中的第一行变成了标题行,ans=df.values[0]中的ans 中存放的是客观题答案, j遍历的是每个学生的每个答案, 故①record[j]==ans[j] 表示学生该题的答案与正确答案一致,该题所得100,此处record[j]=100是为了后面计算平均值;②处要填的是获取每个班级的各小题平均得分率,mean()函数可以实现;③处要显示图例,故答案为plt.legend()。 12.小原爸爸负责接小原放学。一段时间内,小原爸爸将每天接小原时的堵车时间和天气情况记录在文件“data.xlsx”中,其中堵车时间的单位为分钟,如图1 所示,并通过Python 语言编程制作了图表,如图2 所示。 图1            图2 (1)分析图2可知,天气情况与堵车时间__A__(单选,填字母:A.有;B.没有)一定的关系。 (2)部分程序代码如下,请在横线处填入合适的代码。 import pandas as pd import matplotlib.pyplot as plt plt.rcParams['font.sans——serif']=['SimHei'] #用来正常显示中文标签 df=pd.read_excel(”data.xlsx”) #读取Excel 文件中的数据 df=df.groupby(”天气情况”,as_index=True).①__mean()__ #按“天气情况”分组求平均堵车时间 df=df.sort_values(”堵车时间”,ascending=②__False__) #按“堵车时间”进行降序排序 x=③__df.index__ y=df[”堵车时间”] plt.title(”不同天气情况的平均堵车时间分析”) #设置图表标题 plt.bar(x,y) #绘制柱形图 plt.show() 【解析】 (1)从题干中的图2 可知,堵车的时间与雨势大小相关,故选项A正确。 (2)由提示可知,分组后要求平均堵车时间,①处填mean();降序排序的参数为ascending=False,②处填False。 观察图2 可知X 轴数据为“天气情况” ,而df 已按“天气情况”进行了分组并设置为了索引(参数:as_index=True),故③处填df.index,不能填df[”天气情况”]。 13.针对选考2024·普陀中学检测某校对网上阅卷的结果进行分析处理,阅卷结果的原始数据存储在“score.xlsx”文件中,如图1所示。现用Python程序对数据进行处理,请回答下列问题。   图1 (1)为对比分析各班的平均分,该校使用如下程序绘制了柱形图,如图2所示。请在横线处填入合适的代码。 import pandas as pd import matplotlib.pyplot as plt df=pd.read_excel(”score.xlsx”) plt.rcParams[”font.sans——serif”]=[”KaiTi”,”SimHei'] # 设置字体,以显示中文 df1=df.groupby(”班级”,as_index=True).mean() plt.bar(__df1.index,__df1.总分__或df1.index,__df1[”总分”]__) plt.ylim(30,42) plt.xlabel(”班级”) plt.title(”班级平均分对比图”) plt.show() 图2 图3 (2)为分析学生每个选择题的答题情况,该校使用如下程序输出了每题各个选项(A、B、C、D)的占比,结果如图3所示,请在横线处填入合适的代码。 import pandas as pd import matplotlib.pyplot as plt df=pd.read_excel(”score.xlsx”) number=①__len(df.columns)-4__# 存储选择题题目总数,选择题从第5列开始到最后一列为止 n=len(df) # n表示总人数 print(”题号A B C D”) for i in range(number):    print('(',i+1,')',end=' ')    for option in 'ABCD':  dfx=df[df['单选'+str(i+1)]==②__option__]  rate=100 *dfx['姓名'].③__count()__/n  print(round(rate,2),end='%') print() #换行 【解析】 (1)由图2中的柱形图可知,横轴数据是各个班级,纵轴数据是各班对应的平均分值。而数据框df1中的数据就是按班级分类处理过的数据:班级相同的所有人都合成了一行,且求出了平均分。“as_index=True”参数值的存在,df1的索引列就是“班级”,而平均分列就是“总分”列。柱形图的绘制可以用plt.bar()方法,X轴数据是df1.index,纵轴数据可以是df1.总分(注意:此时的“总分”列的值实际上是各班级的平均分)。 (2)第①空:题中已指明number是选择题数,也就是和表格列数有关。pandas中取得数据框的所有列名称可以使用columns属性,它返回了由所有列名称组成的列表,而前4列不是选择题,因此答案是len(df.columns)-4。 第②、③空:根据number的作用可知,for i in range(number)中的变量i可以认为是题号减一,由循环语句for option in 'ABCD'可知,变量option即是选项序号,因此相当于要求出每一列分别有几个“A、B、C、D”,再由下面的dfx['姓名'].使用方法可知,dfx也是一个数据框,因此第②空应该是筛选某一列数据中选项值为option的数据,因此第②空的答案为option。第③空的答案是统计数量,因此可以使用count()函数。 学科网(北京)股份有限公司 $$

资源预览图

高效作业17 第17课 编程处理数据-【精彩三年】2024-2025学年高中信息技术必修第一册课程探究与巩固Word教参(浙教版2019)
1
高效作业17 第17课 编程处理数据-【精彩三年】2024-2025学年高中信息技术必修第一册课程探究与巩固Word教参(浙教版2019)
2
高效作业17 第17课 编程处理数据-【精彩三年】2024-2025学年高中信息技术必修第一册课程探究与巩固Word教参(浙教版2019)
3
所属专辑
相关资源
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。