版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
授课教案20—20学年第学期_______学院________专业课程名称数据采集与预处理技术任课教师授课形式理论教学□课内实践□理论+实践☑习题复习□考核评价□其他活动□课时安排2学时(90分钟)序号24授课日期月日月日月日月日授课班级2026级相关专业教学班授课地点实训机房(多媒体)教学内容:项目六任务六SQL在数据预处理中的应用课程思政设计:1.辩证思维与工具观——教材指出SQL与Pandas各有优势:SQL是声明式语言,在处理海量数据时由数据库优化器选择执行策略,效率与资源占用更优;Pandas则在内存内的灵活变换与可视化衔接上更顺手。课堂让学生就同一需求分别用两种工具实现并对比,体会没有哪一种工具通吃,按场景选择才是专业判断。2.协作意识——教材明确指出掌握SQL是与数据工程师、数据库管理员协作的基础。课堂强调在企业里数据通常被多部门共享,SQL作为标准化接口能保证各部门访问方式一致、权限管理统一,也避免各部门各自导出副本造成版本不一致与数据冗余。借此让学生认识到技术能力同时是协作能力。3.规范意识——教材强调SQL标准化程度高。课堂把标准接口的价值讲透:口径统一,各部门算出的同一个指标才对得上;脱离标准各自导出副本,正是任务三讲的数据冗余的成因之一,两个任务的道理在此汇合。4.数据伦理——客户价值分层分析会产出用户的消费能力与价值等级,属于典型的用户画像操作。课堂明确这类结果仅限授权范围内的业务分析使用,不得对外传播或用于差别定价等侵害用户权益的用途。教学目标:知识目标:能说出SQL的声明式特性及其与Pandas命令式写法的区别;能说明SQL在数据预处理中的三类核心操作——选择筛选、聚合分组、连接合并,并说出各自对应的Pandas操作;能说清窗口函数ROW_NUMBER配合PARTITIONBY的分组排名含义;能说出CASEWHEN实现条件分层的写法;能说明用COUNT(*)与COUNT(列名)之差统计缺失值的原理。能力目标:能用sqlite3.connect建立连接、用to_sql把DataFrame导入数据库表、用read_sql_query执行查询并取回DataFrame;能用SELECT配合WHERE、BETWEEN、ORDERBY、LIMIT完成基础查询与筛选;能用GROUPBY配合COUNT、AVG、SUM、MIN、MAX完成分组统计,并用HAVING筛选聚合结果;能用DATE与strftime提取日期时间维度并用CAST转为整数;能用COUNT(*)减去COUNT(列名)配合UNIONALL与ROUND生成各字段缺失情况报告;能用窗口函数完成品牌价格排名分析、用CASEWHEN完成客户价值分层、用多字段GROUPBY完成商品类别交叉分析;能对照同一需求分别用SQL与Pandas实现并说明各自适用条件。素质目标:养成按数据规模与协作场景选择工具的习惯,不迷信单一工具;养成结构化书写查询语句的习惯——关键字换行对齐、条件分层缩进,让长语句可读可改;在涉及用户分层的分析任务中养成先确认用途合规再动手的意识。教学重难点及解决方法:教学重点:GROUPBY配合聚合函数与HAVING的分组筛选;时间维度提取与缺失值报告的SQL写法;三个进阶分析的实现。教学难点:HAVING与WHERE的分工——WHERE在分组前筛选记录行,HAVING在分组后筛选聚合结果;窗口函数ROW_NUMBEROVER(PARTITIONBY...ORDERBY...)的分组内排名逻辑,学生易把它当成普通的排序。解决方法:针对难点:HAVING与WHERE用同一批数据对照演示——先用WHERE筛出价格大于零的记录再分组,再直接用HAVING筛出记录数不少于10的分组,两个条件作用的对象不同,把两次结果的条数并列投屏;窗口函数采用先分组后排名两步演示,先跑不含窗口函数的分组聚合看结果,再套上ROW_NUMBER看新增的排名列,说明排名是在每个地区内部各自从1开始,不是全局排序。针对重点问题:采用边讲边练,每讲完一类语句即用课程在线教学平台推送1~2道限时练习当堂消化;所有查询统一用三引号换行书写的格式,关键字大写、条件缩进,学生照格式写可减少语法错误;实操期间教师巡视,重点检查GROUPBY的字段是否与SELECT的非聚合列一致、HAVING是否误用了WHERE的位置;课后按检测正确率推送分层强化题。教学环境及平台:实训机房(多媒体),每人一机,配备投影与广播教学软件;Python3.9运行环境(NumPy、pandas、sqlite3);课程在线教学平台。软件与工具:Anaconda、JupyterNotebook、PyCharm/VSCode。数据与素材:教材配套电商销售数据集(电子产品销售分析.csv,56万余条记录)。教学资源:①教材《数据采集与预处理技术》第179–186页正文、示例代码与配套数据集;②本课程课件与演示代码(含HAVING与WHERE对照脚本、三个进阶分析脚本);③课程在线教学平台(预习测验、随堂练习、课后答疑)与课程AI智能体。学习效果评价方式:过程性评价40%+终结性评价60%的综合评价方式,本次课成绩计入平时成绩,对应其中三项:①课堂实操(主要部分):提交三个进阶分析的查询语句与结果,按语句规范、窗口函数用法、结论可读性三项评分;②随堂测验:下课前5题(WHERE与HAVING分工、时间提取函数、缺失统计原理),平台自动批改,当场讲评错误率最高的一题;③课后作业:提交SQL与Pandas对照分析报告。课前预习:平台3道诊断题(SELECT基本语法、聚合函数),统计错误率用于调整讲授重点。课后小结:填表说明:1.序号,指该课程授课的顺序号,应与授课计划一致;2.授课形式在相应的选项打“√”。教学内容及过程时间分配方法及手段思政元素【教师活动】1.承接前五个任务:用Pandas已经能完成读入、清洗、去重、索引、整合全流程。现在提出新情况——公司有一部分电商数据保存在大型关系型数据库里,拿不到CSV文件,只能通过数据库查询语言访问。2.追问:数据量达到数百万甚至数千万条时,把数据全部读进内存再处理会遇到什么问题?引导学生想到内存占用与处理耗时。3.讲三条现实理由:数据库服务器处理大规模数据更高效;企业里数据被多部门共享,需要统一接口;各部门各自导出副本会造成版本不一致与数据冗余——此处与任务三的重复记录成因呼应。4.点明本次课任务:学会用SQL在数据库环境中完成同样的预处理工作,并能与Pandas对照选择工具。【学生活动】说出拿不到文件后还能怎样访问数据;讨论数据量到千万级时内存处理会遇到什么困难;举例说明各部门各自导出副本会造成什么问题。【设计意图】对应知识目标1。承接前五个任务的完整能力,学生此时已能用Pandas独立解决问题,此处刻意制造工具失效的场景,让新工具的学习成为被需求驱动的动作;三条现实理由里的第三条直接呼应任务三,学生能在项目内部看到知识闭环,而不是孤立地学一门新语言;提前把SQL与Pandas的对照关系摆出来,为最后一个环节的对比总结留出接口。环节一任务情境:数据在数据库里拿不到文件(8分钟)任务驱动法问题驱动法讲授+板书协作意识:统一接口才能对得上口径【教师活动】1.讲SQL的声明式特性:用户只需描述期望得到什么结果,不必指定如何获得这个结果,由数据库优化器自动选择执行策略。与Pandas的命令式写法对比——Pandas要一步步写明每一步怎么做。2.讲三条优势:声明式让复杂查询更直观易懂;数据库在索引管理、查询优化、并行处理上有成熟技术,处理大规模数据时性能优势明显;标准化程度高,是与数据工程师、数据库管理员协作的基础。3.讲三类核心操作及与Pandas的对应关系:选择筛选用SELECT配合WHERE,对应Pandas的条件筛选;聚合分组用GROUPBY配合聚合函数,HAVING筛选聚合结果,对应Pandas的groupby加agg再用布尔索引或query筛选;连接合并用JOIN,对应Pandas的merge,且大表连接时优化更好。4.板演环境准备四步:importsqlite3导入模块;sqlite3.connect(':memory:')建立连接,说明':memory:'表示内存数据库;df.to_sql('sales_data',conn,index=False,if_exists='replace')把数据导入数据库表,说明index=False不导索引列、if_exists='replace'表已存在时替换;pd.read_sql_query(查询语句,conn)执行查询并取回DataFrame。5.演示验证:用SELECTCOUNT(*)asrecord_countFROMsales_data查询总记录数并打印,确认导入成功。【学生活动】说出声明式与命令式的区别;完成环境准备与导入,记录总记录数;说明index=False与if_exists='replace'两个参数的作用。【设计意图】对应知识目标1、2与能力目标1。三类核心操作一开始就给出与Pandas的对应表,学生是在已有知识上迁移而非从零学起,接受成本大幅降低;环境准备四步按导入—建连—入表—查询—验证的顺序讲完,学生在第一环节就能跑通一条完整链路,获得正反馈;总记录数验证是本节第一个可自检动作,与前面任务里打印行数的习惯一致。环节二SQL与Pandas的分工及环境准备(12分钟)讲授+板书对照讲授讲练结合(sqlite3+pandas)辩证思维:两种工具按场景选择【教师活动】1.讲SELECT基本语法:SELECT列名FROM表名WHERE条件LIMIT行数,讲清WHERE指定筛选条件、LIMIT限制返回行数、ORDERBY排序、BETWEEN指定范围条件。2.板演三类查询,边写边讲各自解决什么问题:SELECT*FROMsales_dataLIMIT5取前5条,用于快速预览;按品牌筛选,SELECTbrand,price,localFROMsales_dataWHEREbrand='HUAQWEI'LIMIT10,用于定位特定品牌的记录;范围查询,SELECTbrand,price,category_codeFROMsales_dataWHEREpriceBETWEEN100AND200ORDERBYpriceDESCLIMIT10,用于取价格区间的记录并按价格降序。3.强调书写格式:用三引号包裹、关键字大写、每行一个子句,长语句才能读懂改得动。4.现场跑一遍,投屏三类查询结果。5.与Pandas对照:同样的三次筛选在Pandas里分别是head(5)、df[df['brand']=='HUAQWEI']、区间筛选加sort_values,让学生说出两种写法各自的感受。【学生活动】跟做三类查询,记录各自返回条数;用三引号格式重写其中一条语句;用Pandas写出等价的三条语句并对比写法。【设计意图】对应能力目标2。三类查询按预览—定位—区间排序递进,覆盖了实际取数最常见的三种需求;统一书写格式的要求看似形式,却是长语句可维护的前提,直接落实素质目标2;每个SQL都要求学生写出等价的Pandas语句,在对照中巩固两种工具,而不是学了新的忘了旧的。环节三基础查询与筛选(15分钟)讲授+板演讲练结合(投屏+sqlite3)规范意识:语句格式统一长查询才可维护【教师活动】1.讲五个聚合函数:COUNT计数、AVG平均值、SUM求和、MIN最小值、MAX最大值。2.板演按品牌统计:SELECTbrand,COUNT(*)asproduct_count,AVG(price)asavg_price,MIN(price)asmin_price,MAX(price)asmax_priceFROMsales_dataWHEREbrandISNOTNULLGROUPBYbrandORDERBYproduct_countDESCLIMIT10。逐段讲清每个子句的作用,并说明as是给输出列起别名。3.讲WHERE与HAVING的分工:WHERE在分组前筛选记录行,HAVING在分组后筛选聚合结果。用同一批数据对照演示——先演示WHEREbrandISNOTNULL在分组前剔掉空值记录,再演示HAVINGCOUNT(*)>=10在分组后只保留记录数足够的品牌,两次结果条数并列投屏。4.追问:要筛掉平均价格低于100的品牌,该用WHERE还是HAVING?让学生先判断再验证,说明因为条件是聚合结果,必须用HAVING。5.现场跑一遍,投屏本数据集各品牌的商品数量与价格分布,用round保留两位小数便于阅读。【学生活动】跟做品牌统计,记录商品数量最多的品牌与平均价格;完成WHERE与HAVING的对照,说明两者作用对象的差别;判断并验证平均价格筛选该用哪一个子句。【设计意图】对应能力目标3,突破难点HAVING与WHERE的分工。对照演示是本环节的核心动作——学生看到两次结果条数不同,才会追问差别在哪,此时再讲作用对象,比先讲定义有效;让学生先判断再验证的追问,把抽象规则变成可操作的判断力;品牌统计的结果直接为后面环节六的排名分析提供输入,环节间形成串联。环节四聚合统计与HAVING筛选(18分钟)对照演示问题驱动法讲练结合(sqlite3+pandas)科学精神:先判断后验证不靠记忆规则【教师活动】1.讲SQLite的时间处理函数:strftime('格式字符串',时间字段),常用格式符%H小时、%m月份、%w星期;DATE函数提取日期部分;用CAST(...ASINTEGER)把提取出的字符串转为整数。2.板演时间维度提取与分组统计:SELECTDATE(event_time)assale_date,CAST(strftime('%H',event_time)ASINTEGER)assale_hour,...FROMsales_dataWHEREevent_timeISNOTNULLANDevent_time!='1970-01-0100:33:40UTC'GROUPBYsale_date,sale_hourORDERBYsale_date,sale_hourLIMIT20。3.讲查询里的异常值剔除条件:WHERE里剔除空值与教材给出的1970年异常时间记录,此处与任务二处理时间异常值的做法呼应,说明换工具不换思路。4.讲缺失值统计原理:COUNT(*)统计所有记录数,COUNT(列名)只统计该列非空值的数量,两者相减即为该列缺失数量;再除以总数即为缺失比例,用ROUND保留两位小数;多个字段的结果用UNIONALL合并成一张报告表。5.板演缺失报告:对event_time、brand、category_code三个字段分别统计并用UNIONALL合并,打印报告。6.与任务二对照:同样三列的缺失情况,任务二用isnull().sum()得出,本任务用SQL得出,让学生核对两个结果是否一致。【学生活动】跟做时间维度提取与分组统计,记录日期与小时的分组结果;跟做缺失报告,记录三个字段的缺失数量与比例;与任务二的结果核对,确认两种工具算出的数字一致。【设计意图】对应能力目标4、5。时间处理与缺失检查正好是任务二与任务五的核心操作,本环节用SQL重做一遍,学生在换工具的对照中把预处理思路固化下来——工具会变,思路不变;缺失统计的COUNT(*)减COUNT(列名)原理必须讲透,学生才能理解为什么这样能算出缺失;与任务二结果核对是本节最有说服力的动作,学生亲眼看到两条技术路线殊途同归,直接回应思政中的辩证思维。环节五时间处理与缺失值检查(15分钟)讲授+板演讲练结合两工具对照(sqlite3+pandas)辩证思维:工具会变思路不变【教师活动】1.布置三个进阶任务:品牌价格排名分析、客户价值分层分析、商品类别交叉分析。2.示范排名分析:SELECTbrand,local,AVG(price)asavg_price,COUNT(*)assales_count,ROW_NUMBER()OVER(PARTITIONBYlocalORDERBYAVG(price)DESC)asprice_rankFROMclean_sales_dataGROUPBYbrand,localHAVINGCOUNT(*)>=10ORDERBYlocal,price_rankLIMIT20。先跑不含窗口函数的分组聚合看结果,再套上ROW_NUMBER看新增的排名列,讲清PARTITIONBYlocal表示在每个地区内部各自排名,每个地区的第1名都从1开始,不是全局排序;HAVINGCOUNT(*)>=10表示只保留至少有10条销售记录的组合,避免样本太少造成的偶然。3.示范客户价值分层:用COUNT(DISTINCTorder_id)统计订单数、COUNT(*)统计商品件数、SUM(price)统计总消费,再用CASEWHENSUM(price)>=1000THEN'高价值客户'WHENSUM(price)>=500THEN'中等价值客户'ELSE'普通客户'ENDascustomer_tier完成分层,按总消费降序取前15。讲清CASEWHEN是按条件逐个判断,满足前者即不再往下。4.示范类别交叉分析:SELECTcategory_code,sex,COUNT(*)aspurchase_count,AVG(price)asavg_price,AVG(age)asavg_customer_ageFROMclean_sales_dataWHEREcategory_codeISNOTNULLGROUPBYcategory_code,sexORDERBYpurchase_countDESCLIMIT15。讲清两个分组字段形成交叉维度。5.学生实操期间巡视,重点检查PARTITIONBY的字段选择、CASEWHEN的阈值顺序、交叉分析的分组字段。【学生活动】独立实现三个进阶分析,记录各地区价格排名前三的品牌、高价值客户数量与占比、销量最高的类别与性别组合;与同桌核对排名结果,不一致的互相检查PARTITIONBY写法。【设计意图】对应能力目标6,是本次课的综合产出,也是项目六的能力顶点。三个分析分别训练窗口函数、条件分层、交叉分组三类高阶写法,覆盖了企业里最常见的三类分析需求;窗口函数用先分组后排名的两步演示讲透,突破难点;客户价值分层涉及用户画像,此处自然引出数据伦理要求,与思政第四条呼应。环节六进阶分析:排名、分层与交叉(15分钟)项目教学法两步演示演示—实操—巡视(sqlite3+pandas)数据伦理:用户分层结果仅限授权使用【教师活动】1.组织项目小结:带领学生回顾项目六六个任务构成的完整链路——任务一读入与查看、任务二缺失与异常、任务三冗余清理、任务四索引、任务五整合转换、任务六用SQL在数据库中完成同样工作。强调六者是一条从原始数据到分析就绪数据的完整流程,缺一环则结论不可信。2.组织学生对比两种工具:请两位学生分别用一句话说出Pandas与SQL各自的适用条件,教师补充——数据量在内存可承载范围内、需要灵活变换与可视化衔接时用Pandas;数据在数据库中、规模大或需要跨部门统一口径时用SQL。3.介绍教材技能强化部分:以医疗健康数据为例的多源预处理任务,说明其要求与本项目的对应关系——多源读取与问题识别、差异化缺失处理、异常值检测、以患者标识为核心的多层索引、多源整合与衍生指标,正好覆盖六个任务。布置其作为课后拓展方向。4.点明前沿方向:自动化数据清洗
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年注射用氨苄西林钠舒巴坦钠行业洞察报告及未来五至十年发展趋势报告
- 医药研发中心研发行为规范
- 2026年汽车行业零部件供应链成本分析报告
- 2026年旅游行业促销活动与满减政策分析报告
- 2026年智能家居产品检测与认证市场报告
- 2026年新能源行业新员工入职与行业知识培训报告
- 2026年互联网+行业员工培训与创新能力报告001
- 2026年新能源汽车行业市场趋势及竞争策略分析报告
- 2026年教育行业洞察报告:电子黑板市场潜力与竞争格局分析
- 2026年智慧城市建设与产业发展报告
- 2025至2030中国视力测试仪行业调研及市场前景预测评估报告
- IEC31010-2019风险管理 风险评估技术(2024)(可编辑!)
- (正式版)DB3302∕T 1180-2025 《高速公路建设韧性指标体系》
- 脊柱骨折中医护理方案
- 患者风险评估管理制度
- YY/T 0866-2024医用防护口罩总泄漏率测试方法
- 浙教版信息科技四年级上册全册教学设计
- 2024年中国水利水电科学研究院招聘工作人员92人历年公开引进高层次人才和急需紧缺人才笔试参考题库(共500题)答案详解版
- 风机更换施工方案
- 烟花爆竹企业动火作业管理制度
- 加强农村生活污水治理工程的施工质量
评论
0/150
提交评论