数据采集与预处理技术 教案 孔祥铭 项目6-9 数据预处理技术基础-技能拓展 AI 赋能数据采集与预处理_第1页
数据采集与预处理技术 教案 孔祥铭 项目6-9 数据预处理技术基础-技能拓展 AI 赋能数据采集与预处理_第2页
数据采集与预处理技术 教案 孔祥铭 项目6-9 数据预处理技术基础-技能拓展 AI 赋能数据采集与预处理_第3页
数据采集与预处理技术 教案 孔祥铭 项目6-9 数据预处理技术基础-技能拓展 AI 赋能数据采集与预处理_第4页
数据采集与预处理技术 教案 孔祥铭 项目6-9 数据预处理技术基础-技能拓展 AI 赋能数据采集与预处理_第5页
已阅读5页,还剩213页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

授课教案20—20学年第学期_______学院________专业课程名称数据采集与预处理技术任课教师授课形式理论教学□课内实践□理论+实践☑习题复习□考核评价□其他活动□课时安排2学时(90分钟)序号19授课日期月日月日月日月日授课班级2026级相关专业教学班授课地点实训机房(多媒体)教学内容:项目六任务一NumPy与Pandas的安装及介绍课程思政设计:1.科学精神与工具意识——教材给出的问题是:56万多条销售记录,传统表格处理方式无法胜任。课堂让学生先估算手工处理这批数据要花多久,再与代码运行的秒级耗时对比,体会工欲善其事、必先利其器,形成按问题规模选择工具的意识。2.工匠精神与效率意识——同一份年龄段消费分析,用数据透视表逐个拖拽与用一段代码完成,结果一致而效率相差数量级。借此让学生认识到,掌握专业工具不是取巧,而是职业能力的组成部分。3.规范意识——课堂强调np、pd是数据分析领域的通用命名约定,importnumpyasnp、importpandasaspd不是个人习惯而是行业规范;安装后必须用__version__验证版本,不凭感觉判断环境是否就绪。4.数据伦理——本数据集含用户年龄、性别字段,课堂明确这些数据仅用于教学演示,不得针对具体个人做画像或对外传播,养成处理含个人信息数据时的边界意识。教学目标:知识目标:能说出NumPy与Pandas的定义、各自擅长的问题类型及两者的依赖关系;能说明ndarray与Python原生列表的本质差异,以及Series、DataFrame两种数据结构与表格的对应关系;能说清数据读入、基本信息查看、数组转换、统计计算、条件筛选、分组聚合、排序七类基础操作各自的适用场景。能力目标:能用pip完成NumPy与Pandas的安装并用__version__验证;能用pd.read_csv读入CSV数据并用shape、head、dtypes、describe四项查看基本信息;能用np.array把DataFrame的列转换为数组,并用mean、max、min、std、sum完成统计计算;能用布尔掩码完成数组与DataFrame的条件筛选,多条件时用括号包裹并以&或|连接;能用groupby配合agg完成单维度与多维度分组统计;能用sort_values按指定列升降序排列;能完成教材综合任务,用pd.cut分段、groupby聚合、np.mean对比青年与老年群体的消费差异。素质目标:养成先查看数据基本信息再动手分析的习惯,不做不看数据的统计;养成工程规范习惯——按np、pd通用约定导入、安装后验证版本、代码加注释;在小组协作中能用准确的技术语言说明自己选择某个函数或参数的理由。教学重难点及解决方法:教学重点:ndarray与DataFrame两种数据结构的区别与相互转换;条件筛选中布尔掩码的工作原理;groupby与agg配合的分组聚合。教学难点:布尔掩码筛选的原理——条件表达式先生成与数据等长的真假序列,再把它套回原数据取出为真的元素。学生易把掩码当成筛选结果本身;DataFrame与ndarray混用时易错用函数,如对DataFrame直接调用np.mean而不先取列。解决方法:针对难点:把掩码单独打印出来讲透,先让学生看prices>100返回的那串True/False,再看prices[掩码]如何把它套回原数组,用两行代码的中间结果替代一步到位的简写;DataFrame与ndarray混用处采用对照演示,同一份价格数据分别用df['price'].mean()与np.mean(np.array(df['price']))计算,说明两条路都能通但类型不同,并按后续用途选择。针对重点问题:采用边讲边练,每讲完一类操作即用课程在线教学平台推送1~2道限时练习当堂消化;把七类操作组织成一条完整链路——读入、查看、转换、统计、筛选、分组、排序,每个环节的输出都是下一环节的输入,学生在连贯任务中记住操作顺序;课后按检测正确率推送分层强化题。教学环境及平台:实训机房(多媒体),每人一机,配备投影与广播教学软件;Python3.9运行环境;课程在线教学平台。软件与工具:命令提示符(CMD)或PowerShell、Anaconda、JupyterNotebook、PyCharm/VSCode。数据与素材:教材配套电商销售数据集(电子产品销售分析.csv,56万余条记录)。教学资源:①教材《数据采集与预处理技术》第153–157页正文、示例代码与配套数据集;②本课程课件与演示代码(含掩码中间结果演示脚本、年龄段消费分析脚本);③课程在线教学平台(预习测验、随堂练习、课后答疑)与课程AI智能体。学习效果评价方式:过程性评价40%+终结性评价60%的综合评价方式,本次课成绩计入平时成绩,对应其中三项:①课堂实操(主要部分):提交年龄段消费分析代码与运行结果,按环境就绪、七类操作完整度、输出可读性三项评分;②随堂测验:下课前5题(数据结构辨析、掩码原理、groupby与agg用法),平台自动批改,当场讲评错误率最高的一题;③课后作业:提交年龄段消费分析报告,含两两群体消费差异与结论。课前预习:平台3道诊断题(环境与数据结构),统计错误率用于调整讲授重点。课后小结:填表说明:1.序号,指该课程授课的顺序号,应与授课计划一致;2.授课形式在相应的选项打“√”。教学内容及过程时间分配方法及手段思政元素【教师活动】1.投屏展示教材任务引入:某电商平台积累56万余条销售记录,涵盖时间、订单号、产品信息、品牌、价格、用户年龄与性别、地区等多个维度。提问:把这份数据交给你做月度分析,第一件事做什么?2.让学生现场用熟悉的方式尝试打开并统计——多数学生会想到电子表格。追问:56万行在电子表格里滚动、筛选、做透视分别要多久?如果每天都要做一遍呢?3.现场演示:同一份文件用pd.read_csv读入并describe输出统计摘要,全程计时,与学生的估算对比。4.点明本次课任务:装好NumPy与Pandas两件工具,并用它们完成这批数据的读入、查看、统计、筛选、分组与排序。【学生活动】观察数据集规模,估算手工处理耗时并口头报出;观看代码演示并核对计时;记录本次课要完成的七类操作。【设计意图】对应知识目标1与能力目标1。学生已修项目二的Python编程,具备读代码的基础,够得着;先用自己熟悉的工具撞一次墙,再引入专业工具,让安装与使用成为被需求驱动的动作,而不是被动接受的命令;七类操作以清单形式先给全貌,后续逐项展开时学生知道每一环在整个链路中的位置。环节一任务情境:56万行数据从哪里下手(8分钟)任务驱动法直观演示法(投屏+计时对比)工具意识:按问题规模选择合适的工具【教师活动】1.演示安装:打开命令提示符,输入pipinstallnumpy、pipinstallpandas;说明Pandas依赖NumPy,也可用pipinstallpandasnumpy一次装完,系统自动处理依赖。2.讲常见故障与处置:网络超时改用国内镜像源;提示权限不足时加--user;强调装完必须验证,不能凭没报错就算成功。3.演示验证:进入Python环境,输入importnumpyasnp、importpandasaspd,再打印np.__version__与pd.__version__,能正常输出版本号才算装好。4.讲命名约定:np、pd是数据分析领域的通用简称,不是个人习惯;板书说明importnumpyasnp的含义。5.学生实操期间巡视,重点检查:是否两个库都装到同一Python环境、是否用__version__验证、是否按np、pd约定导入。【学生活动】在自己的机器上完成安装与验证,记录NumPy与Pandas的版本号;安装失败的举手,由教师或同组协助排查;后续所有代码统一用np、pd前缀。【设计意图】对应能力目标1,是后续所有操作的前提。环境不就绪则整堂课无法推进,因此放在最前面且必须人人通过;把常见故障与处置一并讲掉,避免课堂卡在网络问题上消耗时间;统一命名约定是为了让后续演示代码与学生手中代码完全一致,减少因命名不同产生的低级错误。环节二环境准备:安装与验证(12分钟)演示—实操—巡视讲授+板书(CMD/PowerShell)规范意识:装完必验证命名守约定【教师活动】1.板演读入:pd.read_csv('电子产品销售分析.csv',index_col=0),讲清第一个参数是文件路径,index_col=0表示用第一列作行索引,返回值是一个DataFrame对象,习惯命名为df。2.逐项演示基本信息查看四件套,边讲边问每一样能回答什么问题:shape返回行列数,先知道数据有多大;head(n)预览前几行,默认5行,用来看清每列长什么样;dtypes看每列类型,int64、float64、object分别意味着什么,object列不能直接算平均数;describe输出计数、均值、标准差、最小值、四分位数、最大值,是判断数据分布的第一步。3.现场跑一遍,投屏本数据集的规模与各列类型,指出price是数值列、brand是object列。4.强调操作顺序:先shape与head看规模与样子,再dtypes看类型,最后describe看分布;不看数据就做统计是数据分析的大忌。【学生活动】跟做读入与四件套查看,记录本数据集的行列数、各列类型与价格分布;回答每一样查看动作能回答什么问题。【设计意图】对应知识目标2与能力目标2。四项查看动作按由粗到细排列,学生能形成固定的查看顺序,而不是想起来才看;把dtypes单独拎出来讲,是因为后续做统计时object列与数值列的处理方式完全不同,此处不埋清楚会在项目七的标准化环节再出问题;强调先看后算,直接对应素质目标1。环节三数据读入与基本信息查看(15分钟)讲授+板演讲练结合(投屏+Jupyter)求实态度:先看数据再做统计【教师活动】1.讲ndarray的定义:存储同类型元素的有序序列,一维像单行数值、二维像数据表;与Python列表的本质差异在于同类型与连续存储,因此运算速度快一到两个数量级。2.板演转换:prices=np.array(df['price']),讲清df['price']先取出一列,np.array再把它转成数组。3.逐个演示五个统计函数并投屏结果:np.mean求平均、np.max求最大、np.min求最小、np.std求标准差(说明它反映离散程度)、np.sum求和。4.讲布尔掩码筛选,分两步演示中间结果:先单独打印prices>100,让学生看清返回的是一串与prices等长的True/False;再演示prices[掩码]把这串真假套回原数组、取出为真的元素。最后才给出合并简写prices[prices>100],并说明简写是建立在理解两步的基础上的。5.追问:掩码里True的个数与筛选结果的长度有什么关系?让学生自己验证。【学生活动】跟做转换与五项统计,记录本数据集价格列的均值、最值、标准差与总和;分步执行筛选,确认掩码中True的个数等于结果元素个数;对同一批数据改用不同阈值再筛一次。【设计意图】对应知识目标3与能力目标3、4,突破难点布尔掩码原理。把中间结果单独打印是本节最关键的演示动作——直接给简写会让学生把掩码与筛选结果混为一谈,后续多条件筛选必然出错;五个统计函数放在一起讲,是因为它们的调用格式完全一致,一次记住可复用;标准差单独解释含义,为项目七的标准化与项目二之后的统计分析埋下伏笔。环节四NumPy:数组转换、统计与条件筛选(18分钟)讲授+板演分步演示讲练结合(Python+NumPy)科学精神:看清中间过程再记简写【教师活动】1.讲Series与DataFrame:Series是一维,类似表格里的一列;DataFrame是二维,类似整张表格;Pandas建立在NumPy之上,专用于数据清洗、转换与分析。2.板演三类筛选,逐条交代学生最常写错的地方:按品牌筛选df[df['brand']=='samsung'],讲清外层df[]取行、内层条件取行号;区间筛选df[(df['price']>=100)&(df['price']<=200)],强调每个条件必须用括号包裹、条件间用&或|连接而非and、or;按性别筛选df[df['sex']=='女']。3.板演分组聚合:groupby('brand')['price'].agg(['mean','count','sum'])统计各品牌价格;再演示多维度df.groupby('sex').agg({'price':['mean','sum','count'],'age':'mean'}),说明字典写法可对不同的列指定不同的聚合方式。4.板演排序:sort_values(by='price',ascending=False)按价格降序看最贵商品,说明ascending默认True为升序。5.链接上一环节:本环节筛出的结果可以直接喂给np.array做统计,两条路线按后续用途选择。【学生活动】跟做三类筛选,有意漏掉括号触发一次报错并记录提示信息;完成按品牌分组的价格统计与按性别的多维度统计,报出消费金额最高的品牌;按价格降序排列并记录前三名。【设计意图】对应知识目标2、3与能力目标4、5、6。有意让学生漏括号触发报错,是把常见错误从口头提醒变成可复现的经历,比反复叮嘱有效;分组聚合从单列到多维度递进,学生先掌握agg列表写法再掌握字典写法,降低一次性接受的负荷;与本环节NumPy路线做显式链接,回应难点中函数错用问题。环节五Pandas:筛选、分组统计与排序(22分钟)讲授+板演试错体验讲练结合(Python+pandas)工匠精神:格式严谨差一个括号就不通【教师活动】1.布置综合任务:根据用户年龄分段,分析不同年龄段的消费特征与差异。2.示范完整实现,边写边讲每一步的作用:用pd.cut(df['age'],bins=[0,30,45,60,100],labels=['青年','中青年','中年','老年'])新建年龄段列,讲清bins是分界点、labels是分组名,两者数量差一;用groupby('age_group').agg({'price':['count','mean','sum'],'user_id':'nunique'})分组聚合,说明nunique统计独立用户数;用round(2)保留两位小数便于阅读;再分别取出青年与老年群体的价格数组,用np.mean求各自平均消费并相减得出差异。3.演示Pandas与NumPy的分工:分段与聚合交给Pandas,数值计算交给NumPy,这正是教材安排的用意。4.引导学生读结果:哪个年龄段客单价最高?哪个年龄段人数最多?消费差异是多少?强调分析结论必须从数据里读出来,不能凭印象。5.学生实操期间巡视,重点检查:bins与labels数量是否匹配、agg字典写法是否正确、结论是否有数据支撑。【学生活动】独立实现年龄段消费分析,记录各年龄段的人数、平均消费、消费总额与独立用户数;计算青年与老年群体的消费差异;根据结果回答三个问题并说明理由。【设计意图】对应能力目标7,是本次课的综合产出,也是项目六的开篇能力基线。任务本身串起了前面五环节的七类操作,学生做完等于把整条链路走了一遍;Pandas与NumPy的分工在本任务里自然体现,比单独讲解两者的定位更有说服力;要求学生从数据中读出结论,直接落实素质目标1与思政中求实的要求。环节六综合实施:年龄段消费特征分析(10分钟)项目教学法演示—实操—巡视(Python+pandas)数据伦理:年龄性别字段仅用于教学【教师活动】1.引导学生用三句话小结:①先用shape、head、dtypes、describe看清数据;②筛选靠布尔掩码,多条件要加括号用&或|;③分段与聚合交给Pandas,数值计算交给NumPy。2.板书七类操作链路:读入→查看→转换→统计→筛选→分组→排序,学生拍照记录。3.课程在线教学平台推送当堂检测5题(数据结构辨析、掩码原理、groupby与agg用法),限时5分钟,系统自动批改,当场讲评错误率最高的一题。4.布置作业并预告:下一任务「缺失值与异常值处理」将直接沿用本任务读入的这份数据,先看清数据、再谈清洗,请课前思考这份数据里可能藏着哪些问题。【学生活动】口述三句话小结;独立完成检测;记录作业要求与下一任务思考题。【设计意图】覆盖知识目标1~3,属形成性评价。三句话小结把七类操作压缩成三条可复述的准则,便于迁移到后续任务;七类操作链路图成为学生做项目六后续任务时的索引;预告下一任务时让学生带着疑问离开,为任务二的情境导入埋下伏笔。环节七小结与当堂检测(5分钟)归纳小结在线检测自动批改诚信意识:独立作答不查资料课外学习任务及学习指导课前:1.预习教材项目六任务一(第153–157页),标注不理解的代码行。2.确认自己的机器已安装Python3.9并能打开命令提示符,本节第一个环节直接用。3.完成课程在线教学平台3道课前诊断题(数据结构辨析、pip安装命令),统计错误率用于调整讲授重点。课后:一、基础巩固(必做,下次课前提交)1.完成教材第153–157页本节练习。2.提交年龄段消费分析源代码与运行结果截图,附100字结论,说明消费差异并给出数据依据。二、拓展提升(选做,A/B二选一)A.把年龄段分界由0、30、45、60、100改为自己设定的区间,重做分析并比较结论是否变化。B.增加按地区或品牌的分组维度,做两维度交叉统计并说明发现了什么。三、思政拓展(选做)查阅一个因工具选型不当导致数据处理失败的公开案例,写100字感想,谈谈工具意识对数据从业者的重要性。填表说明:1.本页可续页;2.教学方法如:项目教学、案例分析、分组讨论、角色扮演、启发引导等;3.教学手段如:课件演示、模型讲解、实物讲解、挂图讲解、视频讲解、网络课程等。授课教案20—20学年第学期_______学院________专业课程名称数据采集与预处理技术任课教师授课形式理论教学□课内实践□理论+实践☑习题复习□考核评价□其他活动□课时安排2学时(90分钟)序号20授课日期月日月日月日月日授课班级2026级相关专业教学班授课地点实训机房(多媒体)教学内容:项目六任务二缺失值与异常值处理课程思政设计:1.科学精神与实事求是——教材给出的处理顺序是先分析缺失机制、再决定处理方式。课堂要求学生在处理记录中写明每一步的判断依据,缺失与异常如实标注,不编数、不掩盖,确立数据从业者最基本的职业底线。2.工匠精神与质量意识——本数据集564169条销售记录中,商品类别代码缺失129370条(约23%)、品牌缺失27224条(约5%)。一个字段的处理方式错了,整份品类报表的结论就错了。借此让学生体会数据清洗不是可有可无的收尾工序,而是决定分析结论对错的关键环节。3.责任意识与职业操守——异常值不等于错误值。课堂反复强调删除前先判断它是不是真实业务,不因图省事而整行删掉可疑记录,避免把真实的极端业务当成脏数据处理掉。4.合规意识——课堂使用教材配套数据集与学校自建样例数据,不涉及含真实个人信息的业务数据,处理结果仅用于教学。教学目标:知识目标:能说出缺失值的定义与四类常见成因,区分完全随机缺失、随机缺失、非随机缺失三类机制并说明三者差别;能说明缺失值检测中数量统计与比例计算两个层面及其结合的必要性;能说清删除法与填充法两条处理路线各自的适用条件;能说出固定值填充、统计量填充、业务规则填充三种做法的结果差别与选择线索;能说出异常值的四类来源及其对均值等统计指标的影响。能力目标:能用isnull().sum()统计各字段缺失数量并计算缺失比例;能用notnull()拆分缺失组与非缺失组、对比关键指标以判断缺失是否存在规律;能用dropna(subset=列名)做按列删除并说明不指定列名时的后果;能用fillna()完成固定值填充、统计量填充,能用自定义函数配合apply完成业务规则填充;能针对具体字段在删除、固定值填充、统计量填充、业务规则填充之间做出选择并说明理由;能用to_datetime与dt访问器发现时间异常值、用describe与条件筛选发现价格异常值;能实现综合清洗函数clean_ecommerce_data(df),按正确顺序完成时间异常清理、价格异常清理、缺失值填充与数据质量检查;能对比清洗前后行数与保留率,判断清洗结果是否合理。素质目标:养成先查数据质量再谈分析的职业习惯,缺失与异常如实记录;养成工程规范习惯——清洗在副本上进行、代码加注释、每步打印中间结果、处理过程可追溯可复现;在小组协作与投屏互评中能用准确的技术语言说明自己的判断依据,并接受他人检查。教学重难点及解决方法:教学重点:缺失值的检测与统计方法;删除法与三种填充法的结果差别与选择线索;时间异常值与价格异常值的发现与处置。教学难点:缺失机制判断与处理方式的对应关系。学生易跳过机制判断、一律用均值或众数填充;清洗四步的执行顺序易颠倒,先填充再清理会把本该删除的脏记录一并填上值。解决方法:针对难点:按机制先行组织教学,先讲三类缺失机制再讲处理方法,确立先判断、后处理的顺序;把删除、固定值填充、众数填充、业务规则填充四种做法分两个环节并列演示,投屏对比同一字段在四种做法下的取值分布,用可见的结果差异替代口头强调;综合清洗函数环节抽取两份典型错误(保留率过低、顺序颠倒)投屏共评,把个人错误转化为全班经验。针对重点问题:采用边讲边练,每个知识点讲完即用课程在线教学平台推送1~2道限时练习当堂消化;实操期间教师巡视,重点检查是否在副本上操作、四步顺序是否正确、数据保留率是否落在75%~80%的合理区间;课后按检测正确率推送分层强化题。教学环境及平台:实训机房(多媒体),每人一机,配备投影与广播教学软件;Python3.9运行环境(NumPy、pandas);课程在线教学平台。软件与工具:Anaconda、PyCharm/VSCode、JupyterNotebook。数据与素材:教材配套电商销售数据集(电子产品销售分析.csv,564169条记录)、学校自建样例数据集(不含真实个人信息)。教学资源:①教材《数据采集与预处理技术》第158–162页正文、示例代码与配套数据集;②本课程课件与演示代码(含四种缺失值处理方式对比脚本);③课程在线教学平台(预习测验、随堂练习、课后答疑)与课程AI智能体。学习效果评价方式:过程性评价40%+终结性评价60%的综合评价方式,本次课成绩计入平时成绩,对应其中三项:①课堂实操(主要部分):提交综合清洗函数代码与清洗前后行数对比,按四步顺序、副本操作、保留率合理性三项评分;②随堂测验:下课前5题(缺失机制判断、处理方式选择、isnull与notnull辨析),平台自动批改,当场讲评错误率最高的一题;③课后作业:提交清洗函数代码与处理记录,写明每一步的判断依据。课前预习:平台3道诊断题,统计错误率用于调整讲授重点。课后小结:填表说明:1.序号,指该课程授课的顺序号,应与授课计划一致;2.授课形式在相应的选项打“√”。教学内容及过程时间分配方法及手段思政元素【教师活动】1.投屏展示教材案例:某电商企业对一批电子产品销售数据做月度分析,报表出来后发现品类销售额占比合计不足80%,且出现1970年的订单。提问:是报表算错了,还是数据本身有问题?2.现场读入教材配套数据集电子产品销售分析.csv,运行(),投屏结果——全表564169条记录,商品类别代码字段缺失129370条(约23%),品牌字段缺失27224条(约5%)。3.追问:两列缺失比例相差近五倍,能用同一种办法处理吗?如果整行删除,23%的比例会丢掉多少条记录?4.点明本次课任务:把这份带病的数据清洗到可以直接做分析的程度,并且要说明每一步为什么这么做。5.讲清本次课的路线:先看清楚缺在哪、为什么缺,再决定怎么处理,然后处理异常值,最后把四步整合成一个可复用的清洗函数。【学生活动】观察投屏结果,记录两个字段的缺失数量与比例;估算整行删除会损失的记录数;对能不能直接删发表看法并说明理由。【设计意图】对应知识目标1与能力目标1。沿用本项目任务一已经读取过的同一份数据,学生够得着;把23%缺失这个具体数字摆到眼前,让后面删除法与填充法的比较有可衡量的尺度,而不是凭感觉;五步路线在开头就讲明,学生知道每一段落在整条链上的位置;环节七再回到这份数据核对清洗结果,首尾形成闭环。环节一任务情境与数据质量事故(8分钟)任务驱动法直观演示法(投屏+数据集)实事求是:正视数据缺陷不掩盖不编数【教师活动】1.给出缺失值定义:数据集中某些位置没有存储值,在本数据集中表现为空白或NaN。2.讲三类缺失机制,逐条配本数据集实例:完全随机缺失——缺失与任何信息无关,如录入员随机漏填;随机缺失——缺失与已知变量有关但与缺失值本身无关,如高价商品更常漏填品牌;非随机缺失——缺失与缺失值本身有关,如品牌越不知名越不被填写。强调第三种缺失本身携带信息,一律填充会引入系统性偏差。3.板演检测流程:df.isnull().sum()统计各列缺失数量;再除以len(df)乘100算缺失比例;用pandas.DataFrame把数量与比例并成一张表,只打印缺失数量大于0的行。强调数量与比例两个都要看——数量大不代表问题重,比例才是决策尺度。4.板演缺失规律判断:用notnull()把brand缺失组与非缺失组分开,分别算price均值并对比,说明两组价格差异明显时缺失就不是随机的。5.讲清这一步在整个流程里的位置:机制判断的结果直接决定后面选哪一种处理办法,跳过它就会一律填均值。6.布置当堂小练:学生各自统计样例数据集的缺失比例,并判断其中一个字段的缺失更接近哪一类机制。【学生活动】跟做检测代码,得到本数据集的缺失统计表并截图;分组对比brand缺失组与非缺失组的平均价格,判断缺失是否随机,派代表报出结论与依据;完成当堂小练并说明理由。【设计意图】对应知识目标1、2、3与能力目标1、2。先讲机制再讲方法,确立先判断、后处理的操作顺序,直接针对学生见缺失就填均值的惯性;isnull与notnull放在同一个问题里出现,学生在对比中记住两者区别;分组对比价格均值让抽象的缺失机制落到可计算的量上,机制这个词从此有了可执行的判据。环节二缺失值的检测与统计(13分钟)讲授+板书讲练结合分组讨论科学精神:先判断后处理不凭经验下结论【教师活动】1.给出两条处理路线及适用条件:删除法适用于缺失比例小、删掉后不影响分析结论的字段;填充法适用于缺失具有业务含义或不宜删除的字段。2.板演删除法:dropna(subset=['brand']),讲清subset参数的作用是只在指定列上有缺失时才删这一行。3.现场演示不指定subset的后果:任何列有缺失的行都会被删除。本数据集category_code缺失23%、brand缺失5%,两列叠加后投屏剩余行数,学生自己看损失了多少条。4.立即对照:指定subset=['brand']再跑一遍,投屏剩余行数,两次数字并排。提问:为什么只加了一个参数,差别这么大?5.讲清结论:删除法的代价是丢信息,代价大小取决于删的是哪一列,不是取决于删了多少行。6.板演固定值填充:category_code填未知类别、brand填无品牌。现场演示并投屏填充后brand的取值分布,讲清这种做法保留业务含义——缺失的那批记录仍然知道自己是没有品牌的,而不是被归入某个真实品牌。7.讲清固定值填充新增了一个类别,后续做占比分析时这个类别要单独说明,不能悄悄混进真实品类里。8.强调工程规范:删除与填充之前先df.copy()建副本,清洗在副本上进行,原始数据保留以便比对。【学生活动】跟做两次删除(不指定subset与指定subset),记录行数差并说出原因;跟做固定值填充并观察取值分布中新增的类别;在自己的副本上完成操作;说出删除法与固定值填充各丢了什么、各保了什么。【设计意图】对应知识目标3与能力目标3、4,突破难点处理方式的选择。先用不指定subset的灾难性结果给学生一个可核对的数字,subset参数的作用不需要口头强调就已经显明;固定值填充紧接着演示,两条路线在同一个字段上对比,取舍的代价落到可见的行数与取值分布上;副本操作作为规范动作在本环节首次出现并在后面反复出现,形成习惯。环节三删除法与固定值填充(11分钟)对比演示问题驱动法讲练结合(Python+pandas)工程规范:清洗在副本上做原始数据要留着【教师活动】1.讲统计量填充:用众数、均值或中位数填入缺失位置。2.板演众数填充:brand填众数,现场演示并投屏填充后的取值分布。3.讲清失真在哪里:本不存在的品牌变成了主流品牌,那批真实没有品牌的记录被凭空归到某一类,品类销售报表因此偏斜。4.追问:本数据集的brand属于非随机缺失——品牌越不知名越不被填写,用众数填等于把不知名的都写成知名的。这个偏差是系统性的,样本量再大也不会自己抵消。5.讲业务规则填充:定义fill_brand_by_price(row),按price大于500填高端品牌、大于100填中端品牌、其余填经济品牌,用apply(函数名,axis=1)按行应用。6.现场演示并投屏结果分布,讲清这种做法借用了另一个可靠字段的信息,填进去的值有业务解释。7.追问:brand该用哪一种?先让学生举手投票,再各跑一遍看结果差别,投屏四种做法的取值分布并排。8.归纳四种做法的选择线索:缺失比例极小且删掉不影响结论用删除;字段是类别且缺失本身有意义用固定值;数值字段且分布集中用统计量;能找到可靠关联字段用业务规则。9.讲清判定顺序:先看缺失机制,再看字段类型,最后看有没有可关联的字段,三步走完答案通常只剩一个。【学生活动】投票选择brand的处理方式并说明理由;跟做众数填充与业务规则填充,记录两种结果下brand取值分布的差异;在自己的副本上完成填充;口述四种做法的选用线索与三步判定顺序。【设计意图】对应知识目标3、4与能力目标3、5,突破难点缺失机制判断与处理方式的对应关系。四种做法分两个环节演示完,结果当场可见,比口头强调不能随便填更有说服力;投票再验证制造认知冲突,学生亲历填充值必须服从字段业务含义这一原则;最后归纳成一条三步走的判定顺序,学生拿到的是判断路径而不是四个孤立选项,换一份数据也能自己走通。环节四统计量填充与业务规则填充(14分钟)对比演示问题驱动法归纳小结(Python+pandas)工匠精神:一个字段的处理方式决定一份报表的对错【教师活动】1.给出异常值定义:明显偏离大部分数据的数值,既可能是真实的极端情况,也可能是错误数据。讲四类来源——录入错误、设备故障、系统错误(如明显不合理的日期)、真实但罕见的极端情况。2.强调判断原则:异常不等于错误,删除前必须先判断它是不是真实业务。3.板演时间异常值:pd.to_datetime(df['event_time'])转换后,用df[df['event_time'].dt.year<2000]筛出年份早于2000的记录,本数据集中即1970-01-01一类系统默认时间。4.给出两种处置:直接筛除,或用pd.NaT把异常时间置为缺失值。说明时间类型的缺失值用NaT而非NaN,两者不能混用。5.追问:1970年的订单更像系统错误还是真实业务?让学生表态,讲清这类时间戳通常来自默认值或转换失败,属于系统错误一类。6.板演价格异常值:print(df['price'].describe())看最小值、最大值与四分位;用df[df['price']==0]与df[df['price']>10000]分别捞出零价与天价记录。7.讲处置:零价一般筛除,确需保留的用中位数填充——median不受极端值影响,比均值稳健。8.提问:为什么这里用中位数而不是均值?让学生算一遍被天价拉偏的均值与不受影响的中位数,把两个数字报出来。9.提醒天价不一定该删:万元以上的专业设备在电商平台上真实存在,删之前先看品类,别把真实的极端业务当成脏数据处理掉。【学生活动】跟做时间异常值与价格异常值的检测,报出本数据集捞出的可疑记录条数;对1970年订单属于哪一类来源表态;分别用均值与中位数填充同一批零价记录,对比两者差异并报出数值;说出天价记录删之前还要看什么。【设计意图】对应知识目标5与能力目标6、7。时间异常与价格异常分属两种类型,分别演示才能让学生掌握按字段类型选检测手段的方法,而不是背一段代码;均值与中位数的对比把稳健统计量这一概念落到可观察的数值差异上,为项目七的标准化处理铺垫;天价未必该删这一提醒与责任意识目标呼应,学生建立的是判断习惯而不是删除反射。环节五异常值的发现与处理(16分钟)讲授+板演探究式学习Python软件验证责任意识:异常不等于错误删除前先判断【教师活动】1.布置任务:把前面学的方法整合成一个可复用的函数clean_ecommerce_data(df),依次完成时间异常值清理、价格异常值清理、缺失值填充、数据质量检查四件事。2.示范函数骨架,边写边讲四步顺序为什么不能颠倒——先清时间异常,再清价格异常,最后填缺失;若先填缺失,会把本该删掉的脏记录也填上值,白填一遍且掩盖问题。3.讲清每一步用哪一种办法:时间异常按前面判断属系统错误,直接筛除;价格零价筛除、天价按品类判断后处置;brand按业务规则填充,category_code用固定值填充。4.演示函数体内的打印语句:每完成一步打印一次剩余行数,最后打印清洗后缺失统计与数据保留率,让清洗过程可追溯。5.讲清保留率的合理区间:保留率过低说明删多了,本数据集按上述四步通常落在75%~80%。6.学生实操期间巡视,重点检查三处:是否在副本上操作、四步顺序是否正确、数据保留率是否落在合理区间。7.抽取2份典型结果投屏共评:一份保留率过低(误用dropna()全列删除),一份顺序颠倒(先填充后清理)。【学生活动】独立实现清洗函数并运行,记录原始数据行数、清理异常时间后行数、清理异常价格后行数与最终行数;与同桌核对保留率,差异明显的互相检查代码;被抽中者说明自己的四步顺序与理由。【设计意图】对应能力目标8、9,是本次课的综合产出。四步顺序是学生最容易出错的地方,放在函数设计里讲比单独强调更有效;把前面环节判断过的处置办法在函数里逐一落实,学生看到的是决策被代码化而不是重新决策;保留率作为可核对的硬指标,学生能自我判断做得对不对,不依赖教师逐个批改;两份典型错误投屏共评,把个人错误转化为全班经验。环节六综合清洗函数的设计与实现(21分钟)项目教学法演示—实操—巡视投屏共评规范意识:过程留痕结果可复现【教师活动】1.引导学生用三句话小结:①缺失先看机制再选方法;②异常不等于错误,删除前先判断;③清洗在副本上做,四步顺序不能颠倒。2.回到环节一那份带病数据:投屏清洗前后的行数对比与保留率,核对是否落在75%~80%区间。3.回应开局的报表问题:品类销售额占比不足80%根在数据不在算法,缺失的23%类别代码被当成空值排除了;现在类别已按未知类别单列,占比能算全。4.点明本次课的分量:数据清洗不是可有可无的收尾工序,而是决定分析结论对错的关键环节。5.板书知识框架:定义→机制→检测→处理→验证,学生拍照记录。6.课程在线教学平台推送当堂检测5题(缺失机制判断、处理方式选择、isnull与notnull辨析),限时5分钟,系统自动批改,当场讲评错误率最高的一题。7.布置作业并预告:下一任务「数据冗余清理」沿用本次清洗后的数据,重复记录怎么发现、能不能用同样的思路处理,请课前思考。【学生活动】口述三句话小结;核对本组保留率是否落在合理区间;独立完成检测;记录作业要求与下一任务思考题。【设计意图】覆盖知识目标1~5,属形成性评价。三句话小结强制结构化输出;回到环节一的那份数据并回应开局问题,全课首尾扣成一环,学生亲眼看到清洗这一步改变了报表结论,本次课的价值不需要额外渲染;检测数据进入平时成绩随堂测验项,同时成为下次课复习导入的素材;预告下一任务,形成课内外衔接闭环。环节七小结与当堂检测(7分钟)归纳小结在线检测自动批改诚信意识:独立作答不查资料课外学习任务及学习指导课前:1.预习教材项目六任务二(第158–162页),标注不理解的代码行。2.复习本项目任务一NumPy与Pandas的安装及介绍中DataFrame的读取、info()、describe()三个操作,本节开局直接用到。3.完成课程在线教学平台3道课前诊断题(缺失值检测、dropna与fillna辨析),统计错误率用于调整讲授重点。课后:一、基础巩固(必做,下次课前提交)1.完成教材第158–162页本节练习。2.提交clean_ecommerce_data(df)源代码、清洗前后行数对比截图,附一份处理记录,写明每一步的判断依据。二、拓展提升(选做,A/B二选一)A.把价格异常值判定条件由price>10000改为按四分位距判定,重做清洗并对比保留率的变化。B.换用教师提供的另一份样例数据集重做清洗,说明两份数据在缺失与异常处理上的差异。三、思政拓展(选做)查阅一起因数据质量缺陷导致决策失误的公开案例,写100字感想,谈谈数据从业者如实记录缺失与异常的职业底线。填表说明:1.本页可续页;2.教学方法如:项目教学、案例分析、分组讨论、角色扮演、启发引导等;3.教学手段如:课件演示、模型讲解、实物讲解、挂图讲解、视频讲解、网络课程等。授课教案20—20学年第学期_______学院________专业课程名称数据采集与预处理技术任课教师授课形式理论教学□课内实践□理论+实践☑习题复习□考核评价□其他活动□课时安排2学时(90分钟)序号21授课日期月日月日月日月日授课班级2026级相关专业教学班授课地点实训机房(多媒体)教学内容:项目六任务三数据冗余清理课程思政设计:1.科学精神与严谨态度——674条重复记录分散在56万余条数据中,占比仅约0.12%,肉眼绝对看不出来,却足以让计数统计偏高、平均值失真。课堂让学生先凭肉眼判断这批数据是否干净,再用代码揭晓实况,体会数据质量问题是看不见的,只能靠方法查出来。2.责任意识与审慎判断——教材把重复记录分为完全重复与部分重复两类,并明确指出部分重复需要依据业务逻辑判断是否视为重复。课堂反复强调:同一用户在极短时间内购买相同商品,可能是真实的重复购买行为,也可能是系统故障导致的重复提交,不能一律删除,避免把真实业务当成脏数据处理掉。3.工匠精神与参数意识——drop_duplicates的keep参数取first、last还是False,决定保留哪一条、删掉哪一条,一个参数就是一次业务判断。借此让学生认识到代码里的每个参数都连着业务后果,不是随手填的默认值。4.职业担当——重复记录在系统、操作、业务三个层面都有成因,其中多渠道数据重复统计、不同部门重复报送属于管理问题。课堂明确数据从业者的责任是如实报告重复情况与成因,而不是悄悄删掉让报表好看。教学目标:知识目标:能说出数据冗余的定义,区分完全重复记录与部分重复记录并说明判定差异;能从系统、操作、业务三个层面说明重复记录的成因;能说出重复记录对统计分析、存储与处理效率的具体影响;能说清drop_duplicates方法中keep参数三种取值的含义与后果。能力目标:能用duplicated().sum()统计完全重复记录数量,并计算重复比例;能用drop_duplicates()完成去重并对比去重前后行数;能用duplicated(subset=[...])按指定字段组合检测重复,区分订单级重复与用户—商品—时间级重复;能用groupby配合apply与duplicated分析重复记录在各品牌、各地区上的分布特征并排序取头部;能根据业务要求选择正确的keep取值完成去重;能实现教材完整去重流程complete_deduplication_pipeline(df),依次完成重复记录报告生成、去重操作执行与质量验证三个步骤;能根据剩余重复记录是否为零判断去重是否彻底。素质目标:养成数据清洗按顺序推进的习惯——先出报告再执行去重、最后验证,不做不打招呼的删除;养成处理部分重复记录时先问业务再动手的审慎态度;养成用重复比例、剩余重复数等可核对指标自我校验的习惯,不依赖感觉判断清洗是否完成。教学重难点及解决方法:教学重点:duplicated与drop_duplicates两个方法的配合使用;subset参数按业务字段去重;keep参数三种取值的选择。教学难点:完全重复与部分重复的判定差异。学生易把按order_id检出的重复等同于完全重复,进而误删;对keep=False会连同首次出现的记录一并删除这一点也容易忽略,导致数据量意外减少。解决方法:针对难点:先用同一批数据分别跑duplicated()与duplicated(subset=['order_id']),把两个数字并列投屏,让学生看清两者不是一回事——前者要求所有字段全同,后者只要求订单号相同;keep参数采用三路对照演示,对同一批重复记录分别用三种取值处理并当场打印结果行数,用可观察的行数差异说明False会额外删掉首条。针对重点问题:采用边讲边练,每讲完一类检测或去重操作即用课程在线教学平台推送1~2道限时练习当堂消化;把检测与去重组织成报告—执行—验证三步固定流程,每步都有可打印的指标,学生能自行判断进度;实操期间教师巡视,重点检查subset字段组合是否由业务含义决定、keep取值是否说明过理由;课后按检测正确率推送分层强化题。教学环境及平台:实训机房(多媒体),每人一机,配备投影与广播教学软件;Python3.9运行环境(NumPy、pandas);课程在线教学平台。软件与工具:Anaconda、JupyterNotebook、PyCharm/VSCode。数据与素材:教材配套电商销售数据集(电子产品销售分析.csv,56万余条记录,含674条完全重复记录)、任务二清洗后的数据集。教学资源:①教材《数据采集与预处理技术》第163–166页正文、示例代码与配套数据集;②本课程课件与演示代码(含keep参数三路对照脚本、完整去重流程脚本);③课程在线教学平台(预习测验、随堂练习、课后答疑)与课程AI智能体。学习效果评价方式:过程性评价40%+终结性评价60%的综合评价方式,本次课成绩计入平时成绩,对应其中三项:①课堂实操(主要部分):提交complete_deduplication_pipeline(df)代码与三步输出结果,按报告完整性、去重顺序、验证结论三项评分;②随堂测验:下课前5题(完全重复与部分重复辨析、keep参数后果、subset用法),平台自动批改,当场讲评错误率最高的一题;③课后作业:提交去重报告,写明检测到的重复数量、采用的去重依据与保留策略。课前预习:平台3道诊断题(duplicated与drop_duplicates辨析),统计错误率用于调整讲授重点。课后小结:填表说明:1.序号,指该课程授课的顺序号,应与授课计划一致;2.授课形式在相应的选项打“√”。教学内容及过程时间分配方法及手段思政元素【教师活动】1.承接任务二:上一任务已经把缺失值补齐、把异常时间与异常价格清理掉,数据看起来干净了。现在请学生凭肉眼判断——这份清洗过的数据还有没有问题?2.现场对清洗后的数据做分组统计并投屏,指出部分品牌的销售金额数值异常偏高。提问:清洗已经做过了,为什么结果还是偏高?3.运行df.duplicated().sum(),揭晓实况:56万余条记录中有674条完全重复的记录。4.追问:674条在56万条里只占约0.12%,这么小的比例,管不管?让学生先表态再算一笔账——若按品牌统计,这674条会落到哪些品牌上。5.点明本次课任务:把数据冗余查出来、判断清楚、清理干净,并说明每一步依据什么。【学生活动】凭肉眼观察清洗后的数据并给出判断;观看投屏的分组结果,指出偏高的品牌;记录674条完全重复这一实况;对0.12%的比例是否值得处理发表看法。【设计意图】对应知识目标1与能力目标1。承接任务二的同一份数据,学生在上一任务已经建立了清洗过的预期,此处打破预期形成认知冲突;先让学生凭肉眼判断再揭晓,是为了说明数据质量问题靠肉眼查不出来,只能靠方法,直接回应思政中的严谨态度;用0.12%这个具体比例引发争议,让后面的检测与去重动作有明确必要性,而不是照着教材走流程。环节一任务情境:清洗之后为什么还是偏高(8分钟)任务驱动法直观演示法(投屏+数据对比)严谨态度:看不见的问题只能靠方法查【教师活动】1.给出数据冗余的定义:数据集中存在相同或高度相似的记录,这些记录提供重复信息,没有增加新的数据价值。2.讲两类重复记录:完全重复记录是所有字段的值都完全相同,通常由系统错误或操作失误造成;部分重复记录是大部分字段相同但某些字段存在差异,需要依据业务逻辑判断是否视为重复。举例说明:同一笔订单的时间、订单号、商品信息、用户信息全都相同属完全重复;同一用户在极短时间内购买相同商品则属部分重复,可能是真实购买也可能是重复提交。3.讲三层成因,逐层配实例:系统层面——数据库连接超时导致重复提交、网络不稳定造成重复传输、系统故障后的回滚与重新处理、跨系统数据同步错误;操作层面——网页响应慢时用户重复点击、数据导入重复执行、手工录入误操作、备份恢复时的重复创建;业务层面——多渠道销售数据重复统计、促销活动期间订单重复处理、退款退货流程中的数据重复记录、不同部门重复报送。4.讲四项影响:计数统计偏高、平均值计算偏差、分组统计失真、时间序列出现异常峰值;此外还占用额外存储、降低查询处理效率、增加传输负担。结合导入案例说明:这些偏差最终会造成企业战略规划与资源配置的失误。5.强调本次课的判断原则:完全重复可以放心删,部分重复必须先问业务。【学生活动】记录两类重复的判定差别,并各举一个自己见过的例子;把导入案例的成因归入系统、操作、业务三层之一;说明计数偏高与平均值偏差的区别。【设计意图】对应知识目标2、3。把成因分成三层讲,是为了让学生明白重复记录不只是技术故障,也可能是管理问题,为后面思政中的如实报告埋伏笔;两类重复的判定差别是本节后续所有操作的依据,必须先立清楚,否则学生会一路删到底;四项影响逐条对应具体统计动作,学生能把抽象影响落到自己会算的指标上。环节二数据冗余的成因与影响(12分钟)讲授+板书案例分析对比讲授职业担当:成因要如实报告不悄悄删掉【教师活动】1.讲duplicated方法的原理:返回一个布尔型Series,重复记录标记为True,首次出现的记录标记为False。强调这个取值的含义——首次出现的不算重复,后面再出现的才算。2.板演基本检测四步,边写边讲每步输出什么:len(df)打印数据总行数;df.duplicated().sum()统计重复记录数量;len(df.drop_duplicates())打印去重后行数;用重复数÷总行数×100计算重复比例并格式化为两位小数。3.现场跑一遍,投屏本数据集的结果:总记录数、重复记录数、去重后行数、重复比例。4.强调三步之间的数量关系:总行数-去重后行数=重复记录数,学生可用这个等式自检自己有没有做对。【学生活动】跟做四步检测,记录本数据集的四个数字;用数量关系等式自检结果是否自洽;把去重前后的行数差说出来。【设计意图】对应能力目标1、2。先把duplicated的True/False含义讲透,学生才能理解为什么sum出来的数字不等于重复组数而是多余的条数;四步里的比例计算是关键,因为下一环节要按不同字段比较重复程度,只有比例可横向比较;给出可自检的数量等式,学生不依赖教师也能判断自己做对了没有,直接落实素质目标3。环节三重复记录的基本检测(15分钟)讲授+板演讲练结合(投屏+Jupyter)求实态度:用等式自检不凭感觉判断【教师活动】1.讲subset参数:duplicated(subset=['列名1','列名2']),用于指定判断重复所依据的列。强调指定了subset之后,只有这些列的组合完全相同才算重复,其他列不同也算重复。2.并列演示三类检测并投屏三个数字:df.duplicated()检测完全重复;df.duplicated(subset=['order_id'])检测订单号重复;df.duplicated(subset=['user_id','product_id','event_time'])检测同一用户对同一商品在同一时间的记录重复。3.追问:三个数字为什么不一样?哪个最大?为什么订单号重复会比完全重复多?引导学生认识到判定标准越宽松,检出的重复越多。4.讲分布特征分析:用groupby('brand').apply(lambdax:x.duplicated().sum())统计各品牌的重复记录数,再用布尔筛选与sort_values取头部若干条;同样方法按local地区统计。强调这一步的意义是找出重复集中在哪些品牌、哪些地区,为溯源提供线索。5.强调业务含义:subset里放哪些列,是由业务流程决定的,不能随便填。【学生活动】跟做三类检测,记录三个数字并说明大小关系的原因;完成按品牌与按地区的分布统计,报出重复最多的品牌与地区;说出自己选的subset组合对应什么业务含义。【设计意图】对应能力目标3、4,突破难点完全重复与部分重复的判定差异。三个数字并列是本环节的核心演示动作——学生看到数字不同,自然会产生为什么的疑问,此时再讲判定标准的宽严,比先讲理论有效;分布特征分析把检测从数数字推进到找源头,为下一环节按业务去重提供依据;反复强调subset由业务决定,直接落实素质目标2。环节四按业务字段检测与分布特征分析(18分钟)对比演示问题驱动法讲练结合(Python+pandas)审慎判断:字段由业务决定不能随便填【教师活动】1.讲drop_duplicates的keep参数三值含义:keep='first'保留第一条(默认值)、keep='last'保留最后一条、keep=False删除所有重复记录(包括首次出现的那一条)。2.三路对照演示:对同一批重复记录分别用三种取值处理,当场打印每次结果的行数,投屏三个数字。重点讲解keep=False为什么行数掉得最多——它连首次出现的记录也删掉了。3.讲基于特定列的去重:drop_duplicates(subset=['order_id'],keep='first')按订单号去重并保留首条;再演示subset=['user_id','product_id','event_time']的多字段去重。4.提问:处理订单号重复时该保留首条还是末条?让学生先讨论,再说明保留策略取决于业务上哪条记录更可信——通常保留首条,但若末条包含状态更新则保留末条。5.强调操作顺序:先删完全重复,再按业务字段去重;顺序颠倒会先误删部分真实记录。【学生活动】跟做三路对照,记录三个行数并说明差异原因;完成按订单号与按用户—商品—时间两种去重;讨论并说明自己选择的keep取值及理由。【设计意图】对应知识目标4与能力目标5,突破难点keep=False的后果。三路对照用可观察的行数差异替代口头警告,学生看到数字就能记住区别;保留策略与业务可信度挂钩,把技术参数讲成业务决策,直接落实素质目标2与思政中的参数意识;操作顺序单独强调,是因为它与任务二的四步顺序同构,学生在项目六里第二次遇到先清后填类的顺序问题,此处巩固。环节五去重策略与keep参数(20分钟)三路对照演示分组讨论讲练结合(Python+pandas)工匠精神:一个参数就是一次业务判断【教师活动】1.布置任务:把前面学的方法整合成完整去重流程complete_deduplication_pipeline(df),依次完成重复记录报告生成、去重操作执行、质量验证三个步骤。2.示范函数骨架,边写边讲三步顺序为什么不能颠倒——先出报告才知道有多少重复、依据什么去重;执行去重时先删完全重复再按订单号去重;最后必须验证,不验证就不知道干净了没有。3.演示三步各自的打印内容:第一步打印总记录数、完全重复记录数及其占比、订单号重复数及其占比;第二步先执行drop_duplicates()打印完全重复去重后行数,再执行drop_duplicates(subset=['order_id'],keep='first')打印订单去重后行数;第三步用duplicated().sum()检查剩余重复记录,等于零则打印去重完成,否则提示需进一步处理。4.点明工程规范:函数内先df.copy()建副本,原始数据保留以便比对;每步都打印,过程可追溯。5.学生实操期间巡视,重点检查三步顺序、subset依据、验证是否真的执行了。【学生活动】独立实现完整去重流程并运行,记录三步各自的输出数字;核对最终剩余重复记录是否为零;与同桌比对去重后行数,差异明显的互相检查subset与keep的写法。【设计意图】对应能力目标6、7,是本次课的综合产出。三步结构与任务二的四步结构同构但更精简,学生在重复中巩固先报告、后执行、再验证的工程流程;剩余重复数作为可核对的硬指标,学生能自行判断去重是否彻底,不依赖教师逐个批改;与同桌比对行数制造同伴校验,把个人错误在课堂内消化掉。环节六综合实施:完整去重流程(12分钟)项目教学法演示—实操—巡视同伴互校规范意识:三步顺序固定每步留输出【教师活动】1.引导学生用三句话小结:①完全重复可以放心删,部分重复要先问业务;②判定标准越宽松检出的重复越多,subset由业务决定;③去重按报告—执行—验证三步走,最后必须验证。2.板书知识框架:定义→成因→检测→去重→验证,学生拍照记录。3.课程在线教学平台推送当堂检测5题(完全重复与部分重复辨析、keep参数后果、subset用法),限时5分钟,系统自动批改,当场讲评错误率最高的一题。4.布置作业并预告:下一任务「数据标签与索引」将在本任务去重后的数据上继续处理,索引乱了同样会让统计出错,请课前思考。【学生活动】口述三句话小结;独立完成检测;记录作业要求与下一任务思考题。【设计意图】覆盖知识目标1~4,属形成性评价。三句话小结把本任务压缩成三条可复述的准则,便于与任务二的四步准则并列记忆;知识框架与任务二同源,学生能在项目六内部形成统一的处理思路;预告下一任务时用索引乱了同样会出错制造衔接,保持整条链的连续性。环节七小结与当堂检测(5分钟)归纳小结在线检测自动批改诚信意识:独立作答不查资料课外学习任务及学习指导课前:1.预习教材项目六任务三(第163–166页),标注不理解的代码行。2.复习本项目任务一中duplicated相关的DataFrame操作与任务二的清洗顺序,本节直接沿用。3.完成课程在线教学平台3道课前诊断题(duplicated与drop_duplicates辨析),统计错误率用于调整讲授重点。课后:一、基础巩固(必做,下次课前提交)1.完成教材第163–166页本节练习。2.提交complete_deduplication_pipeline(df)源代码与三步运行结果截图,附一份去重报告,写明检测到的重复数量、采用的去重依据与保留策略。二、拓展提升(选做,A/B二选一)A.改用subset=['user_id','product_id','event_time']作为去重依据,重做去重并对比保留记录数的差异,说明两种依据各自的业务含义。B.对去重后的数据按品牌做重复分布统计,指出重复最集中的三个品牌并推测可能的成因。三、思政拓展(选做)结合教材提到的多渠道数据重复统计、不同部门重复报送两类业务成因,写100字感想,谈谈数据从业者在发现这类问题时应当如何处理。填表说明:1.本页可续页;2.教学方法如:项目教学、案例分析、分组讨论、角色扮演、启发引导等;3.教学手段如:课件演示、模型讲解、实物讲解、挂图讲解、视频讲解、网络课程等。授课教案20—20学年第学期_______学院________专业课程名称数据采集与预处理技术任课教师授课形式理论教学□课内实践□理论+实践☑习题复习□考核评价□其他活动□课时安排2学时(90分钟)序号22授课日期月日月日月日月日授课班级2026级相关专业教学班授课地点实训机房(多媒体)教学内容:项目六任务四数据标签与索引课程思政设计:1.效率意识与工具意识——在56万余条记录里找一笔订单,逐行遍历与用订单号索引直接定位,区别不只是快慢,而是可不可行。课堂让学生先说出遍历查找要多少次比较,再与索引查找对比,体会数据结构的选择决定分析能不能做成。2.规范意识——教材明确指出应尽量使用唯一索引与有序索引,因为索引不唯一时访问操作可能返回多条记录。课堂把这一条与任务三的重复记录打通:同一个订单号出现多次,既会造成统计重复,也会造成索引歧义,规范是相通的。设置新索引后必须用is_unique检查,不凭感觉认为肯定唯一。3.系统思维——教材用图书馆的分类系统比喻索引、用具体位置比喻标签。课堂借这个比喻说明:面对多维度数据,先想清楚按哪几个维度组织,再建立层次化结构,这是处理复杂对象的通用方法,不只是写代码技巧。4.数据伦理——按用户标识追踪某个客户的购买历史,是教材给出的典型场景,也是涉及个人隐私的操作。课堂明确这类能力仅限教学演示与授权范围内的业务分析使用,不得用于针对具体个人的画像或对外传播。教学目标:知识目标:能说出索引与标签的区别及二者关系——索引决定组织数据的方式,标签是该方式下每条数据的具体身份标识;能说出RangeIndex、Int64Index、对象索引、多层索引四种类型的特点与各自适用场景;能说明标签访问背后是标签与数据位置的映射关系;能说清唯一索引与有序索引各自的必要性。能力目标:能用index、columns属性查看行列索引,并用is_unique、is_monotonic_increasing、dtype、memory_usage判断索引特征;能用set_index把指定列设为行索引,并在设置后用is_unique与duplicated检查唯一性;能用set_index同时指定多列建立多层索引,并用nlevels、names、get_level_values查看层级信息;能用loc按标签精确查找单条记录,并对多层索引按外层、内层逐层访问;能用to_datetime转换后建立时间索引,用loc完成单日查询与日期区间查询;能用pd.Grouper(freq='M')配合agg完成按月分组统计。素质目标:养成访问数据前先看索引特征的习惯,不做不检查索引就直接查找的操作;养成按业务维度设计索引结构的思维习惯,先想清楚按什么组织再动手;养成用loc按标签访问而非按位置数的习惯,让代码在数据结构变化时仍然可用。教学重难点及解决方法:教学重点:set_index建立行索引与多层索引;loc按标签精确查找与分层访问;时间索引的区间查询。教学难点:索引与标签的概念区分。学生易把二者当成一回事,进而看不懂为什么改了索引之后原来的列名取不到了;多层索引的层次访问顺序也容易弄混,常写成先内层后外层。解决方法:针对难点:用教材的图书馆比喻讲透二者关系——索引是分类方式,标签是具体位置,改了分类方式位置标识随之改变,学生能据此理解为什么订单号变成索引后不能再按列名取它;多层索引的层次访问采用递进演示,先用loc['北京']取外层,再用loc[('北京','apple')]取两层,并用元组写法强调顺序由外到内,最后让学生故意颠倒顺序触发KeyError并读提示。针对重点问题:采用边讲边练,每讲完一类索引操作即用课程在线教学平台推送1~2道限时练习当堂消化;三类索引放在同一份数据上连续演示,学生看到同一批记录在订单号索引、地区品牌多层索引、时间索引下的不同组织形态,理解索引是同一数据的不同视图;实操期间教师巡视,重点检查设置新索引后是否执行了唯一性检查、loc是否用标签而非位置;课后按检测正确率推送分层强化题。教学环境及平台:实训机房(多媒体),每人一机,配备投影与广播教学软件;Python3.9运行环境(NumPy、pandas);课程在线教学平台。软件与工具:Anaconda、JupyterNotebook、PyCharm/VSCode。数据与素材:教材配套电商销售数据集(电子产品销售分析.csv,56万余条记录)、任务三去重后的数据集。教学资源:①教材《数据采集与预处理技术》第167–171页正文、示例代码与配套数据集;②本课程课件与演示代码(含四类索引对照脚本、时间索引范围查询脚本);③课程在线教学平台(预习测验、随堂练习、课后答疑)与课程AI智能体。学习效果评价方式:过程性评价40%+终结性评价60%的综合评价方式,本次课成绩计入平时成绩,对应其中三项:①课堂实操(主要部分):提交三类索引应用代码与查询结果,按索引设置、唯一性检查、loc访问正确性三项评分;②随堂测验:下课前5题(索引与标签辨析、多层索引访问顺序、时间区间查询写法),平台自动批改,当场讲评错误率最高的一题;③课后作业:提交三类索引的查询结果与索引设计说明。课前预习:平台3道诊断题(索引类型、loc用法),统计错误率用于调整讲授重点。课后小结:填表说明:1.序号,指该课程授课的顺序号,应与授课计划一致;2.授课形式在相应的选项打“√”。教学内容及过程时间分配方法及手段思政元素【教师活动】1.承接任务三:数据已经去重、清洗完毕,共56万余条。现在提出四个真实需求——查一笔订单的详细信息、按用户标识追踪某个客户的购买历史、提取某个时间段的销售记录、按商品类别分类统计。2.提问:如果每次都从第1行开始逐行比对,查到目标记录平均要比多少次?四个需求各做一遍呢?3.让学生现场估算,再用代码实测一次遍历查找的耗时。4.点明矛盾:传统的0、1、2数字位置索引满足不了业务需求,需要能用订单号、用户标识、时间戳直接定位的组织方式。5.点明本次课任务:把数据集按业务

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论