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

2025-11-15
| 18页
| 28人阅读
| 3人下载
教辅
浙江良品图书有限公司
进店逛逛

资源信息

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

内容正文:

第17课 编程处理数据(见学生用书P91) ——4.2 大数据处理,教材第134~138页 利用matplotlib模块对数据进行可视化处理。 1.matplotlib是一个绘图库,使用其中的__pyplot__子库所提供的函数可以快速绘图和设置图表的坐标轴、坐标轴刻度、图例等。 2.在Python中导入matplotlib的pyplot子库的方法为: import matplotlib.pyplot as plt 3.matplotlib模块的常用绘图函数 分类 函数 说明 创建对象 figure() 创建一个新的图表对象,并设置为当前绘图对象 注:不创建figure对象,直接调用plot等绘图函数进行绘图,matplotlib会自动创建一个figure对象 绘制图形 __plot()__ 绘制线形图 bar() 绘制垂直柱形图 barh() 绘制水平柱形图 scatter() 绘制散点图 续表 分类 函数 说明 修饰美化 __title()__ 设置图表的标题 xlim()、ylim() 设置X、Y轴的取值范围 xlabel()、ylabel() 设置X、Y轴的标签 legend() 显示图例 显示 show() 显示创建的所有绘图对象 4.语法说明 (1)figure(num=None,figsize=None,dpi=None,facecolor=None,edgecolor=None,frameon=None) num为图像标号;figsize为figure的高度和宽度;dpi为figure的分辨率;facecolor为背景颜色;edgecolor为边框颜色;frameon为边框显示情况。 (2)plt.plot(x,y,label='cos(x)',color='r',linewidth='2') color为线条颜色;linewidth为线条宽度。 如图1所示,小林将收集到的各地区的油价存于文件“数据.xlsx”中,并对数据进行了如下操作: (1)筛选出对象“df”中数据“0号柴油”不大于8.4元的数据行,保存到对象“d5”中; (2)统计对象“d5”中的各个地域的地区个数,并绘制图表,如图2所示。           图1                 图2   import pandas as pd import matplotlib.pyplot as plt plt.rc('font',**{'family':'SimHei'}) df=pd.read_excel('数据.xlsx') df.at[19,'92号汽油']=8.8 df=df.sort_values('地区',ascending=False) d5=df[df['0号柴油']<=8.4] # 情况1:以“地域”为分组依据,由“d5.groupby('地域')”可知,缺少属性“as_index”,则值默认为True,语句等价为“d5.groupby('地域',as_index=True)”,则分组依据“地域”作为索引 g=d5.groupby('地域').count() plt.bar(g.index,g.地区) plt.title('地域分布图') plt.show() # 情况2:以“地域”为分组依据,由“d5.groupby('地域',as_index=False)”可知,分组依据“地域”不作为索引 g=d5.groupby('地域',as_index=False).count() plt.bar(g.地域,g.地区) plt.title(”地域分布图”) plt.show() # 情况3:以地域为分组依据,由“d5.groupby('地域',as_index=True)['地区'].count()”得知,单独对地区列计算,g为Series对象 g=d5.groupby('地域',as_index=False) ['地区'].count() plt.bar(g.index,g.values) plt.title(”地域分布图”) plt.show()   有如下Python程序段: import pandas as pd import matplotlib as mpl import matplotlib.pyplot as plt import random s1=random.sample('abcdefghij',5) items=[1,2,3,4,5] random.shuffle(items) #随机排列items中的值 plt.bar(s1,items) plt.show() 执行该程序段后,输出的结果可能是( B )        A.        B.        C.        D. 【解析】 语句“s1=random.sample('abcdefghij',5)”是5个小写字母;语句“plt.bar(s1,items)”产生柱形图,横坐标是s1,选项B正确。 变式  用于绘制x5+x4+x-3=0图像的Python程序代码如下。 import numpy as np import matplotlib.pyplot as plt x=np.linspace(-1,2,300) y=x**5+x**4+x-3 plt.plot(x,y) plt.title('x^5+x^4+x-3') plt.xlabel('X') plt.ylabel('Y') plt.show() 下列选项不正确的是( C ) A.np.linspace(-1,2,300)表示在[-1,2]之间,生成300个等差数 B.plt.plot(x,y)表示绘制线形图 C.plt.xlabel('X')、plt.ylabel('Y')表示绘制X、Y轴 D.plt.show()表示显示图像 【解析】 plt.xlabel('X')、plt.ylabel('Y')表示设置X、Y轴的标签,选项C错误。   小明收集了全国各地区某年第一、二、三、四季度的季度生产总值,并将其存储在“生产总值.xlsx”中,其数据格式如图1所示。 图1 请回答下列问题。 (1)小明收集的数据存在一些问题,需要进行数据整理,下列说法不正确的是__A__(单选,填字母)。 A.不符合一般规律的异常数据应该直接删除 B.数据集中格式不一致的数据,需要进行数据转换 C.重复的数据应在进一步审核的基础上进行合并或删除等操作 D.缺失的数据通常可采用平均值、中间值或概率统计值来填充缺失值 (2)为了找出平均生产总值最大的五个地区,小明通过Python编程进行数据处理,并以图表的形式呈现结果。实现上述功能的Python程序如下,运行结果如图2所示,请在横线处填入合适的代码。 import pandas as pd import matplotlib.pyplot as plt plt.rcParams[”font.sans——serif”]=[”SimHei”] #中文显示 df=pd.read_excel(”生产总值.xlsx”) g=df.groupby() g=g.①__mean()__ df1=g.sort_values(”生产总值”,ascending=②__False__)     图2 x=df1.地区[0:5] ③__y=df1.生产总值[0:5]__或__y=df1.生产总值.head(5)__ plt.④__bar__ (x,y,label=”季度平均值”) plt.title(”全国生产总值季度平均值前五的地区”) plt.xlabel(”地区”) plt.ylabel(”平均值”) plt.legend() plt.show() (3)上述程序加框处应填入的代码为__A__(单选,填字母)。 A. ”地区”,as_index=False B. ”地区”,as_index=True C. ”生产总值”,as_index=False D. ”生产总值”,as_index=True 【解析】 (1)选项A,不符合一般规律的异常数据中可能包含重要的信息,不能直接删除,选项错误。 (2)根据题意,本题生成的图表为各地区四个季度的平均值最大的前5项,所以应按“地区”分类,对四个季度求平均值,故第①空填入mean();再结合最大的前5行,第②空填入 False;第③空设置图表的Y轴数据为生产总值前5项,故填入y=df1.生产总值[0:5];第④空是绘制柱形图,填入bar。 (3)根据前面题意分析应按“地区”分类,且取“地区”列数据是通过列号来取的,所以分类完后前面应该有0,1…索引行,as_index的值应为False。 变式1  2024·诸暨中学检测某次模拟考试成绩存储在“Scores.xlsx”数据文件中(如图1 所示),现利用Excel 软件与Python程序对这些数据进行统计分析并可视化,请回答下列问题。 (1)在Excel 软件中计算每位学生的成绩总分。选择M2 单元格输入公式,然后利用自动填充功能完成区域M3:651 的计算,则M2 单元格的公式为=SUM(__C2:L2__)。 图1 (2)利用Pandas 模块读取数据,统计出各选科组合的选择人数,部分程序代码如下,请在横线处填入合适的代码。 df=pd.read excel(”Scores.xlsx”) df1=df.groupby(”选科”,as_index=False) df2=df1.__count()__#统计各选科组合的人数 df2=df2.rename(columns=(”学号”:”人数”)) (3)为了获取选科人数最多的前8 个组合,结果如图2 所示,下列代码可行的是__CD__(多选,填字母)。 A.df3=df2.sort_values(”人数”).tail(8) B.df3=df2.sort_values(”人数”).head(8) C.df3=df2.sort_values(”人数”),ascending=False)[0:8] D.df3=df2.sort_values(”人数”),ascending=False).head(8)             图2              图3 (4)对处理后的数据进行可视化操作,结果如图3 所示,部分程序代码如下,请在横线处填入合适的代码。 plt.bar(__df3.选科,df3.人数__或__df3[”选科”],df3[”人数”]__) #绘制柱形图 plt.title(”选科人数最多的前8 个组合”) #设置标题 plt.show() 【解析】 (1)总分为对应C列至L 列的数据之和,公式为=SUM(C2:L2)。 (2)计数用函数count()。 (3)从图2 可以看出,数据按人数做了降序排序,选项A、B 未加参数ascending=False,选项错误。取前8人可以用head(8)或采用切片方式[0:8],故选项C、D正确。 (4)从图3 可以看出,数据来自df3 对象的选科和人数两列。 变式2  2024·萧山中学检测小明收集了学校某次考试的成绩,部分成绩情况如图1所示。为统计分析考试成绩,小明编写了Python 程序。请回答下列问题。           图1                    图2 (1)处理成绩数据:小明需要将第1 位同学的语文成绩由138 改为135,统计并输出“七选三”科目的考试人数,再筛选出语文成绩大于等于100 的数据行,存入df1 对象。请在横线处填入合适的代码。 import pandas as pd df=pd.read_excel('exam.xlsx') ①__df.at[0,'语文']=135__或dg['语文'][0]=135__#将第1 位“张吉雅”同学的语文成绩修改为135 ▲____#此处多选,选项在第(2)小题中 for km in df.columns[6:13]: #统计并输出“七选三”科目的考试人数 renshu=②__df[km].count()__ print(km,renshu) df1=③__df[df['语文']>=100]__ (2)统计语数英总分:上述程序中加▲的横线处应填入的代码为__AB__(多选,填字母)。 A.df['语数英总分']=df['语文']+df['数学']+df['英语'] B.df.语数英总分=df.语文+df.数学+df.英语 C.df.'语数英总分'=df.'语文'+df.'数学'+df.'英语' D.df.['语数英总分']=df.['语文']+df.['数学']+df.['英语'] (3)小明需要根据df1 对象的数据建立一张男女生语文成绩均分比较条形图,如图2 所示。下列程序中加▲的横线处应填入的代码为__C__(单选,填字母)。 A.groupby('语文')['性别'].mean() B.groupby('性别').mean() C.groupby('性别')['语文'].mean() D.groupby('性别',as_index=False)['语文'].mean() import matplotlib.pyplot as plt plt.rc('font', **{'family': 'SimHei'}) #设置显示中文字体 g=df1.____▲____#此处单选,选项在第(3)小题中 plt.barh(g.index,g.values) plt.title('男女生语文成绩均分比较') plt.show() 【解析】 (1)①第1行的行索引是0,使用at方式,答案为df.at[0,'语文']=135;不使用at,答案为df['语文'][0]=135。 ②学考从第7列开始(列索引为6),逐列提取并统计。 ③筛选出语文成绩大于或等于100 的数据行,采用条件筛选。 (2)“df['语数英总分']”采用字典法表示,“df.语数英总分”采用属性法表示,选项A、B正确。 (3)由语句“plt.barh(g.index,g.values)”可知,选项C正确。 |随|堂|检|测| 1.小李利用他所学习的知识帮助老师整理成绩单,部分界面如图1所示。 图1 (1)为统计每个学生的技术成绩排名,选中F2单元格并输入公式,然后利用自动填充完成F2:F393的数据计算,发现结果有误,请修改F2单元格的计算公式:__=RANK(E2,E$2:E$393)__。(提示:RANK函数用于计算某单元格中数据在某区域内的排名,如=RANK(G2,G2:G100),计算G2单元格中数据在G2:G100的排名) (2)根据表格“chengji.xlsx”中的数据利用如下Python 程序计算出如图2的结果, 并绘制图表,如图3所示,请在横线处填入合适的代码。            图2               图3 import pandas as pd import matplotlib.pyplot as plt df=pd.read_excel(”chengji.xlsx”) g=①__df.groupby__(”班级”,as_index=False) average=g.mean() print(round(average,2)) a=average[”班级”] b=average[”技术总分”] plt.title(”Average Score”) plt.②__plot__(a,b) plt.show() 【解析】 (1)使用排名函数RANK,在自动填充过程中需要加上绝对引用。 (2)①按班级进行分组;②绘制的是折线图,使用plot。 2.2024·长兴中学检测小林收集了各地市各年份检测的PM2.5浓度值,并保存于Excel文件“PM2.5.xlsx”中,部分数据如图1所示。小林使用Python进行数据分析。            图1               图2 请回答下列问题。 (1)小林先将同一个地区的数据输出到各自独立的Excel文件中,部分结果如图2所示,实现上述功能的Python程序段如下: import pandas as pd import matplotlib.pyplot as plt df=pd.read_excel(”PM2.5.xlsx”) # cities保存所有地区名称,此处仅演示部分数据 cities=[”安吉县”,”淳安县”,”慈溪市”,”杭州市”,”湖州市”] for city in cities: dfc=________ dfc.to_excel(city+”.xlsx”,index=False) # 输出文件结果如图2所示 上述程序段中横线处可填入的代码有__AC__(多选,填字母)。 A.df[df[”地区名称”]==city] B.df[df[”地区名称”]]==city C.df[df.地区名称==city] D.df[df.”地区名称”]]==city (2)对于图1所示的原始数据,小林要进行数据整理:删除“地区编码”“指标名称”“计量单位”等对后面统计无用的数据列。请在横线处填入合适的代码。 df=pd.read_excel(”PM2.5.xlsx”) # 删除“地区编码”“指标名称”“计量单位”数据列 df=df.drop([”地区编码”,”指标名称”,”计量单位”],axis=__1__ ) (3)对于整理后的数据,在同一个地市中取历次PM2.5浓度最高的值,然后将数据按PM2.5浓度值升序排序,最后输出排序后的最后5行结果,输出结果如图3所示。下列程序中横线处应填入的代码为__D__(单选,填字母)。 A.df.groupby(”PM2.5”).max() B.df.groupby.地区名称.max() C.df.sort_values(”PM2.5”).max() D.df.groupby(”地区名称”).max() # 同一个地市中取历次PM2.5浓度最高的值 dfg=________ # 按PM2.5浓度值升序排序 dfg=dfg.sort_values(”PM2.5”,ascending=True) # 输出排序后的最后5行结果 print(dfg.tail())           图3                     图4     (4)在排序后的数据中分别取PM2.5浓度值最高和最低的5行数据,将其合并成新的DataFrame对象,并绘制柱形图,如图4所示。请在横线处填入合适的代码。 df2=pd.concat([dfg.head(5),dfg.tail(5)]) # 合并两个对象成为新的DataFrame对象 plt.rcParams['font.sans——serif']=['KaiTi','SimHei','FangSong'] # 设置图表字体 plt.figure(figsize=(8,4)) plt.title(”部分地市PM2.5浓度值对比”) plt.bar(①__df2.index__,df2[”PM2.5”],color=”orange”) for i in range(len(df2)): x=df2.index[i] y=②__df2[”PM2.5”][i]__ # text()方法可以绘制数据标签,语法:text(横坐标,纵坐标,显示内容) plt.text(x,y,'%d'%y) 【解析】 (1)由题意可知,程序需要将“地区名称”符合条件的数据行筛选出来输出的独立Excel文件,而数据筛选的格式是df[条件],其中“条件”部分是关于数据列的一个关系表达式,选项A、C正确,选项B、D的使用格式错误。 (2)pandas处理数据函数,既可以处理行也可以处理列,drop()就是如此,参数axis=1表示处理列,即删除指定的列。 (3)同一个地市中取PM2.5浓度值最高的数据行可以用分组函数groupby()和求最大值函数max()实现,其中groupby()函数的参数是地区名称,选项D正确。选项A的分组依据错误,因为它会将PM2.5浓度值相同的数据行分到同一组中,而不是按地区分组。选项B的函数格式错误。选项C是按PM2.5浓度值先升序排序,然后求所有数据中的最大值,此时PM2.5浓度最高的值只有一个数据,无法求出各个地市的PM2.5浓度最高值。 (4)plt.bar()函数绘制柱形图需要两个参数:X轴数据和Y轴数据(每个x对应的纵轴数据)。由题中图3和图4可知,横坐标是各个地区的名称,而由于数据框df2是分组后的结果,地区名称列已经成为了索引列,因此第①空应该填写df2.index。第②空,由程序和标签的效果图可知df2.index[i]取出了每行数据的横坐标值,类似地,对应的纵坐标值是df2[”PM2.5”][i]。 温馨提示:请完成高效作业17 ) 学科网(北京)股份有限公司 $$

资源预览图

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