《Python数据分析与应用案例教程》教案 第19课 旅游网站精华游记数据分析与可视化.docx
课题第19课数据分析与可视化课时2 课时(90 min )教学目标知识技能目标:(1 )练习使用Pandas分析数据(2 )练习使用Pandas导入和保存Excel娄据(3 )练习使用Matplotlib可视化展示数据素质目标:深入理解生态文明建设原则,增强热爱自然的意识教学重难点教学重点:使用Pandas分析数据教学难点:使用Maiplollib可视化展示数据教学方法案例分析法、问答法、讨论法、讲授法教学用具电脑、投影仪、多媒体课件、教材、APP教学设计第1节课:考勤(2 min )一问题导入(5 min ) 一传授新知(28 min ) 一课堂实践(10 min )第2节课:问题导入(8 min ) 一传授新知(20 min ) 一课堂讨论(12 min )一课堂小结(3 min ) 一作 业布置(2 min )教学过程主要教学内容及步骤设计意图第一节课考勤(2 min)【教师】使用APP迸行签到【学生】按照老师要求签到培养学生的组 织纪律性,掌握学 生的出勤情况问题导入(5 min)【教师】提出问题我们已经学习了案例分析及数据预处理的相关知识,那么数据如何进行分析 呢?【学生】思考、举手回答通过提问的方 法,了解学生对数 据分析的知识,进 而引出新知传授新知(28 min)【教师】总结学生的回答,并引入新知,讲解数据分析与可视化的相关知识6.3数据分析与可视化6.3.1 旅游月份分析小【教师】按照教材步骤进行问题分析及程序演示:首先,导入"旅游网站精华游记数据预处理.Xlsx"文件中的数据,并设置中文 字体;然后,将数据按月份分组及获取统计个数;最后,创建新画布,设置大小为 (10. 5),以统计个数的行标签为x轴数据、数值为y轴数据、线条颜色为(0.894. 0. 0.498)绘制折线图,并设置x轴刻度、x轴和y轴标题、图表标题和每个数据的文本 标签。实现代码如下.import inatplotlib.pyplot as pitimport pandas as pddf= pd.read_excelC旅游网站精华游记数据一预处理.xlsx')通过教师讲解、 课堂讨论、多媒体 演示等方式,使学plt.rcParainsJ'font.sans-serif = 'SiinHei'df_month = df.groupby (月份).size。#按月分组及获取统计个数#绘制每月游客旅游次数折线图plt.figure( figsize=( 10,5)x = dOnonth.indexpll.plo(x, df_month, color=(0.894,0, 0.498)plt.xticks(range(l, 13)plt.xlabd(月份,)pli.ylabd(旅游次数)pit血leC每月游客旅游次数折线图,)for a, b in zip(x. df_month):plt.text(a. b, '%d, % b, ha="center')plt.show()(详见教材)*【学生】观察、记录、理解【学生】教师演示完成后,学生按照教材提示和教师演示进行实际操作,井 对比程序运行结果(详见教材)*【教师】巡视课堂记录,对学生进行个别指导»【教师】提出学习任务:对比程序结果,进行结果分析.【学生】观察、记录、理解、分析)【教师】总结学生的分析结果本次采集的游记数据中,7月、9月和10月是旅游旺季,2月和3月是旅游淡 季。旅游天数和人均消费分析计【教师】按照教材步骤进行问题分析及程序演示:通过游记中的旅游天数和人均消费,可以分析游客最能接受的旅游天数和人均 消费。此处,使用直方图按天数和人均消费分析旅游次数。首先,创建新画布,设置大小为(10. 9);然后,创建第一个子图,以天数为x 轴数据、统计的旅游次数为y轴数据、填充颜色为(0.894, 0,0.498)、边框颜色为黑色 绘制直方图,并设置x轴、y轴和子图标题;最后,创建第二个子图,以人均消费 为x轴数据、统计的旅游次数为y轴数据、填充颜色为(0.894,0,0.498)、边框颜色为 黑色绘制直方图,并设置x轴、y轴和子图标题。实现代码如下。plt.figure(figsize=( 10, 9)plt.subplot(2, 1, 1)pll.hisl(diT天数color=(0.894.0, 0.498), edgccolor='k')plt.xlabelC 天数)pli.ylabelC旅游次数)plt.lille(按天数统计旅游次数直方图)plt.subplot(2. 1.2)pll.hisHdfT人均消费(元)1 color=(0.894, 0,0.498), edgecolor='k')生了解数据分析 与可视化等相关 知识,包括旅游月 份分析及旅游天 数和人均消费分 析课堂实践(io min)pkxlabelC人均消费/元,)plt.ylabelC旅游次数)pktiUe(按人均消费统计旅游次数直方图,)plt.show()(详见教材)沙【学生】观察、记录、理解中【学生】教师演示完成后,学生按照教材提示和教师演示进行实际操作,并 对比程序运行结果(详见教材)“【教师】巡视课堂记录,对学生进行个别指导【学生】聆听、思考、理解、记忆【教师】提出问题:,Fure 1今6今中Q三26810按人均消费统李*渐次数直方图按无效统计微游次融直方图通过课堂讨论, 加深学生对旅游 天数和人均消费 分析结果的理解30000 人均方费元50X0请同学们观看旅游天数和人均消费分析结果图,可以看出哪些内容?【学生】聆听、思考、讨论、小组代表回答问题【教师】总结学生的回答从图中可以看出,本次采集的游记幡中,大部分游客旅游的天数在5天以 下、人均消费在5 000元以下。第二节课问题导入(8 min)【教师】提出问题我们已经学习了旅游天数和人均消费分析方式,那么旅游方式如何分析呢?【学生】聆听、思考、回答问题通过提问的方 法,引导学生主动 思考,激发学生的 学习兴趣传授新知(20 min)【教师】总结学生的回答,并引入新知,讲解旅游方式分析及热门地区分析和预测 的相关知识旅游方式分析“【教师】按照教材进行问题分析并按照步骤进行旅游方式分析演示:通过游记中的旅行标签,可以分析游客的旅游方式。此处,使用饼状图分析游 客旅游方式。首先,删除旅行标签列包含缺失值的行,并将该列中的数据使用空格分割,保 存在label中;接着,定义标签列表label Jist ,循环读取label ,将其中的每个元素添 加到labelist中;然后,使用labeljist创建DataFrame对象dfjabel ,设置列标签为 标签,以及添加值都为1的次数列,并将dfjabel按标签分组及求统计个数聚合后按 次数降序排序,获取前5行的数据;最后,创建新画布,以次数为扇区数据、以行标 签为扇区标签、两位小数百分比为比例格式绘制饼状图,并设置图表标题。实现代码 如下。data_iabel =旅行标签.dropna()label = data_label.str.split(expand=False)labeljist =()for i in label:labeUisi.cxtcnd #使用labeljist创建DataFrame对象,并设置列标签dMabcl = pd.DataFrame(labcl_list, columns=标签')dfabel次数=1#添加值为1的次数列df_label_count = df_label.groupby('标签)agg('count').sort_values(by='次数 ascending=False).head(5)pl(.figure()pl(.pie(df_label_count|'/X'l. iabels=df_label_count.index. autopct='%.2f%')pluiUef游客旅游方式饼状图,)plt.show()(详见教材)【学生】现察、记录、理解【学生】教师演示完成后,学生按照教材提示和教师演示进行实际操作,井对 比程序运行结果(详见教材)【教师】巡视课堂记录,对学生进行个别指导小【教师】提出学习任务:对上维序结果,进行结果分析。通过教师讲解 和课堂练习,使学 生了解旅游方式 分析及热门地区 分析和预测等的 相关知识中【学生】观察、记录、理解、分析【教师】总结学生的分析结果从图中可以看出,本次采集的游记标签数量前5名数据中,34.82%的游记与美食 相关,25.66%的游记与摄影相关,14.17%的游客选择了自驾,深度游的数量大于短 途周末的数量。热门地区分析和预测【教师】按照教材进行问题分析并按照步骤进行旅游方式分析演示:游记中的途经地点,可以反映游客已经去过的地区,如果该地区去过的游客多, 说明它是该段时间的热门地区;而游记中的阅览数可以反映游客对该地区感兴趣的程 度,如果游记的阅览数很高,想去相关地区的游客可能会很多,因此可以预测未来的 热门地区.此处,使用柱状图分析当前的热门地区,以及预测未来的热门地区。热门地区分析和预测可以通过下面6个步骤来实现。(i )删除途经地点列包含缺失值的行,并重新设置连续行索引后赋给dfl。(2 )创建空的DataFrame对象df_concat ,循环dfl的行索引。在循环中,首先 使用"、"将途经地点分割,并保存在列表placejist中;接着使用placejist创建 DataFrame对象df_temp ,并设置列标签为地点;然后将该行对应的阅览数赋值给 df_temp的阅览数列;最后纵向合并df_concat和df_temp0(3 )将值为I的次数列添加到df_concai中,然后重新设置连续的行索引,最 后将其按地点分组及求和聚合,并赋给df_group.(4 )创建新画布,设置大小为(10. 8)。(5泡I建第一个子图将dLgroup按次数降序排序并获取前10行赋给displace ; 然后以df_place的行标签为x轴数据、次数为y轴数据、矩形柱宽为0.6、填充颜色 为(0.894, 0.0.498)绘制柱状图,并设置每个数据的文本标签、y轴和图表标题。(6 )创建第二个子图,将df_group按阅览数降序排序,并获取前10行赋给 df_vicw ;然后以d匚view的行标签为x轴数据、阅览数为y轴数据、矩形柱宽为0.6. 填充颜色为(0.894. 0. 0.498)绘制柱状图,并设置每个数据的文本标签、y轴和图表标 题。实现代码如下。#删除途经地点列包含缺失值的行,并重新设置连续行索引dfl = df.dropna(subsel='途经地点)reset_index(drop=True)df_concat = pd.DataFrame() #创建空的 DaiaFraine 对象for index in dfl.index:# 将途经地点列使用"分割,并将返回的列表赋给placeistplace_list = dfl .iloc(index6.split( *)# 使用placejist创建DataFrame对象df_temp ,并设置列标签为地点 df_temp = pd.DataFrame(place_)ist. columns=地点')# 以该行对应的阅览数为值将阅览数列添加到dUempdf_temp/阅览数=dfl.ilocindex5# 纵向合并 df.concat 和 dfjenipdCconcal = pd.concat(df_concat. df_temp)df_concat次数=1#在df_concat中添加值为1的次数列#重新设置df_concai连续的行索引,并忽略原行索引df_concat = df_concal.reset_indcx(drop=rrue)(详磁材)»【学生】现察、记录、理解小【学生】教师演示完成后,学生按照教材提示和教师演示进行实际操作,并对 比程序运行结果(详见教材)中【教师】巡视课堂记录,对学生进行个别指导【教师】提出学习任务:对h维序结果,进行结果分析。【学生】观察、记录、理解、分析【教师】总结学生的分析结果从结果可以看出,本次采集的游记数据中,游客已经去过地区前1()名数据和阅 览数包含地区前10名数据基本相同,只是第37名的地区顺序不太一致。去过游客 人数多的地区关注度也较高,游客去旅游的可能性也较大,可以预测当前的热门地区 也极可能是未来的热门地区。【学生】聆听、思考、理解、记录课堂讨论(12 min )【教师】讲述“辉煌中国”案例,提出问题,请同学们分小组讨论:你知道中国哪些旅游资源?【学生】聆听、结组、思考、讨论、小组代表发言【教师】聆听学生的回答通过课堂实训, 使学生能够了解 更多关于数据分 析的知识课堂小结(3 min)【教师】简要总结本节课的要点本节课学习了数据分析与可视化的相关知识,包括旅游方式分析和热门地区分析 和预测等相关内容,希望大家在课下多加练习,巩固所学知识。【学生】总结回顾知识点总结知识点巩 固学生对相关知 识的印象作业布置 (2 min )【教师】布置课后作业完成课后"本章考核6”的习题。【学生】完成课后任务通过课后作业 复习巩固学到的 知识,提高理论接 收能力教学反思本节课效果不错,不同水平的学生都成功的掌握了知识点。小组内的互助,不仅解决了后进生在解 题过程中遇到的问题,也使优秀学生对所学知识有了更加深入的认识,很好地促进了学生共同进步。