




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
学IT有疑问,就找千问千知千里寻他众百度,锋自苦寒磨砺出Python数据预处理应用技术教学设计课程名称:Python数据预处理应用技术__授课年级:_______________________授课学期:_______________________教师姓名:_______________________2022年11月02日
初识Python数据预处理课程名称第1章初识Python数据预处理计划学时6学时内容分析本章首先对数据预处理进行了解;其次介绍常见的数据问题和数据预处理的流程;接着介绍开发环境的设置与管理方法;然后介绍jupyter的工作原理和使用方法;最后重点介绍了常用的数据预处理工具Numpy、SciPy和Pandas,分别介绍安装、特点、应用与常用操作。教学目标与教学要求【知识目标】了解Python数据预处理的特点、应用领域及一般流程。了解常见的数据问题与影响数据质量的因素。掌握搭建和管理Anaconda开发环境的方法。熟悉IPython程序的运行方式,掌握jupyternotebook的安装与使用方法。掌握三种科学计算库的安装与使用并掌握常见操作。【技能目标】掌握在Windows环境下搭建Anaconda开发环境的方法。掌握配置并管理虚拟环境的方法。学会使用jupyternotebook。能灵活使用三种常用的数据预处理工具。【育人目标】初步建立工程思维和数据安全意识。了解Python数据预处理的应用领域,增强职业认同感,帮助学生树立远大的职业理想。引导学生进行思维的创新和科学精神的探索。了解数据预处理流程,培养学生严谨、规范的学习习惯。培养学生理论与实践相结合能力。教学重点数据预处理的应用领域。开发环境设置。Jupyter的使用。三种常用的数据预处理工具的安装、使用与特点。
教学难点开发环境设置。三种常用的数据预处理工具的安装、使用与特点。教学方式课堂讲解配合ppt演示。学生练习与教师讲解一体化。教学过程第1节:数据预处理概述(数据、数据应用开发流程、数据预处理流程、应用领域)一、提出需求,导入学习任务(1)为什么要进行数据预处理?以Python的发展与特点作为切入点,介绍Python的开发环境及Python程序的运行方式。(2)如何开始这本书的学习?学习一门语言,首先得知道因何诞生、独特性和优越性,才能知道python语言区别于其他语言的优势。(3)明确学习方向。了解Python数据预处理的特点及应用领域。了解常见的数据问题与数据质量因素。了解数据预处理的一般流程。掌握搭建Anaconda开发环境的方法。熟悉IPython程序的运行方式,掌握jupyternotebook的安装与使用方法。掌握三种科学计算库的安装、使用与特点,并了解常见操作。二、知识讲解初识数据数据概念:不仅指狭义上的数字,还可以是具有一定意义的文字、字母、数字符号的组合、图形、图像、视频、音频等,也是客观事物的属性、数量、位置及其相互关系的抽象表示。举例:“0、1、2…”、“阴、雨、下降、气温”、“学生的档案记录、货物的运输情况”等。拓展:数据经过加工后就成为信息。类型:数据可以是连续的值,比如声音、图像,称为模拟数据;也可以是离散的,如符号、文字,称为数字数据。存在形式:在计算机系统中,数据以二进制信息单元0、1的形式表示。常见的数据类型:文本(str)、数值、序列(list、tuple,range)、映射(dict)、集合、布尔、二进制等。常见的基本数据类型Python中,常见的基本数据类型可以分为6种:数字、字符串、列表、元组、字典与集合,详见表1.1。数据应用开发流程数据预处理概念:在进行主要的数据处理以前对数据进行的一些处理。具体操作:对所收集数据进行分类或分组前所做的审核、筛选、排序等必要的处理。目的:提高数据质量。提高数据挖掘和分析的准确率和效率。通过调整数据格式和内容,使得数据更符合要求。举例:删除数据重复值。Python应用领域数据预处理在工业、农业、教育、医疗等方面的应用越来越广泛,已经渗透进了人们生活的方方面面。数据分析概念:指对大量有序或无序的数据进行信息的集中整合、运算提取、展示等操作,通过这些操作找出研究对象的内在规律。目的:揭示事物运动、变化、发展的规律,如把隐没在一大批看来杂乱无章的数据中的信息集中、萃取和提炼出来,以找出所研究对象的内在规律。意义:提高系统运行效率、优化系统作业流程、预测未来发展趋势。数据挖掘概念:从数据库的大量数据中揭示出隐含的、先前未知的并有潜在价值的信息的非平凡过程。地位:是目前人工智能和数据库领域研究的热点问题,是一种决策支持过程。目的:从数据库中发现隐含的、有意义的知识。意义:通过预测未来趋势及行为,做出前摄的、基于知识的决策,从中挖掘出潜在的模式,帮助决策者调整市场策略,减少风险,做出正确的决策。机器学习概念:是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。地位:是人工智能核心,是使计算机具有智能的根本途径。目的:是一门关于数据学习的科学技术,它能帮助机器从现有的复杂数据中学习规律,以预测未来的行为结果和趋势。意义:获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。人工智能概念:人工智能(ArtificialIntelligence,AI)是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。本质:对人的思维的信息过程的模拟。目的:研究使计算机来模拟人的某些思维过程和智能行为,如学习、推理、思考、规划等,使计算机能实现更高层次的应用。意义:使机器能够胜任一些通常需要人类智能才能完成的复杂工作。提高人们的工作效率,提升生活品质。三、知识巩固(1)回顾上课前的学习目标,对本节课知识点进行总结。(2)使用第一章课后作业。第2节:常见的数据问题(数据问题、数据质量)一、回顾上节课内容(1)对上节课布置的作业以及学生提出的问题进行答疑解惑。(2)回顾上节课内容,引出本节课主题。(3)明确学习方向。了解常见的数据问题及其含义。了解数据质量的概念。了解数据质量评估的9个维度。二、知识讲解数据问题常见的数据问题:数据缺失、数据异常、数据重复、数据冗余、数据值冲突、数据噪声等。数据缺失:个别数据远离数据集。数据异常:个别数据远离数据集。数据重复:同一条数据多次出现。数据冗余:数据中存在一些多余的、无意义的属性。数据值冲突:同一属性存在不同值。数据噪声:属性值不符合常理。数据质量概念:指数据的一组固有属性满足数据消费者要求的程度。数据的固有属性真实性:即数据是客观世界的真实反映。及时性:即数据是随着变化及时更新的。相关性:即数据是数据消费者关注和需要的。评估维度完整性规范性一致性准确性时效性唯一性合理性冗余性获取性三、知识巩固(1)回顾上课前的学习目标,对本节课知识点进行总结。(2)使用第一章课后作业。第3节:数据预处理流程(数据问题、数据质量)一、回顾上节课内容(1)对上节课布置的作业以及学生提出的问题进行答疑解惑。(2)回顾上节课内容,引出本节课主题。(3)明确学习方向。了解数据预处理常见流程各环节的概念及意义。了解数据获取与存储的意义。二、知识讲解数据获取与存储数据来源分类:内部数据与外部数据。内部数据:主要是产生于企业内部系统的数据,如文本数据、Excel表格等。外部数据:主要是产生于企业外部系统的数据,可以是网络爬虫获取的数据、工况数据、环境数据等。数据存储数据通常可以多种方式存储到本地,如word文件、CSV文件等,或存储在数据库中,外部数据存储须遵循《数据安全法》之规定。数据清洗概念:数据清洗又叫数据清理或数据净化。应用:主要用于数据仓库、数据挖掘和全面数据质量管理三个方面。目标:格式标准化,异常数据清除,错误纠正,重复数据的清除。方法:可通过填写缺失的值、光滑噪声数据、识别或删除离群点并解决不一致性来“清理”数据。举例:表格自动填充缺失值数据。数据集成概念:将多个数据源中的数据结合起来并统一存储,这些数据源可能包括多个数据库、数据立方体和一般文件。举例:建立数据仓库的过程。注意:集成多个数据源时,会出现冗余数据,常见的有属性重复、属性相关冗余和元组重复。数据变换概念:不同来源所得到的数据可能导致不一致,所以需要选择将某些数据进行变换,构成一个适合的描述形式。主要方式:平滑聚集、数据概化、规范化等。举例:将图表元素转换成0-1之间的数据。数据规约背景:在现代大数据背景下,数据量会非常大,对海量数据进行复杂的数据分析和挖掘将需要很长的时间,使得这种分析不具有可操作性。概念:得到数据集的规约表示,从而减少数据集容量。注意:数据规约后的数据仍然接近于保持原数据的完整性,并且结果与规约前结果相同或几乎相同。三、知识巩固(1)回顾上课前的学习目标,对本节课知识点进行总结。(2)使用第一章课后作业。第4节:开发环境设置(数据问题、数据质量)一、回顾上节课内容(1)对上节课布置的作业以及学生提出的问题进行答疑解惑。(2)回顾上节课内容,引出本节课主题。(3)明确学习方向。了解Anaconda的特点及功能。掌握anaconda的下载以及安装步骤。掌握Anaconda管理虚拟环境的方法。二、知识讲解Anaconda概述简介分类:Anaconda拥有个人版、商业版、团队版、企业版。注意:除个人版不收费外,其他版本都需要付费。组成:开源的Python发行版本,其包含了conda、Python等180多个科学包及其依赖项。Anaconda特点Anaconda是由数据科学家为数据科学家构建的,超2000万人使用。①用途广泛——Anaconda解决方案是真正的数据科学和机器学习应用的重要技术。②开源——只有开源创新才能跟上不断变换的需求。③安全性高——捕获漏洞及时,有效控制对模型、数据和包的访问。方便了解每个项目的人员、内容、时间和地点等信息。④内置python——高度集成python数据科学生态。⑤拥有强大的包管理工具conda。⑥可用超过600个python数据科学库。Anaconda功能可以利用Anaconda研究数据处理、数据建模、机器学习、神经网络、自然语言处理、可视化展示、教学等。拓展:如果已经安装了Python,为什么还需要Anaconda?提示:方便开始处理数据、管理包、管理数据。Anaconda下载与安装下载Anaconda注意:anaconda的官网地址并非一直不变。注意:选择安装的是Anaconda3-2022.05-Windows-x86_64安装包。安装Anaconda注意:设置环境变量path。测试Anaconda是否安装配置成功Cmd调出运行窗口,conda、conda-V命令。设置环境变量配置环境变量,设置path路径。Anaconda管理虚拟环境管理包提示:AnacondaNavigator界面或由此进入命令终端,再通过pip或者conda相关命令获取。Conda相关命令提示:通常,在cmd命令打开的命令终端进行。Pythonpip概念:pip是Python包管理工具。功能:pip提供了对Python包的查找、下载、安装和卸载等功能。常用命令:pip--version#显示版本和路径pip--help#获得帮助pipinstall-Upip#升级pipsudoeasy_install--upgradepip#更新pip安装三方库pipinstallSomePackage#最新版本pipinstallSomePackage==1.0.4#指定版本pipinstall'SomePackage>=1.0.4'#最小版本注意:升级指定的包,通过使用==,>=,<=,>,<来指定一个版本号,如pipinstallDjango==1.7。conda与pip的区别conda是跨平台且不限语言的,而且可以独自创建虚拟环境,因为conda立足于数据科学生态,pip可以安装几乎所有的Python库(来自pypl),conda只能安装anaconda里支持的数据科学库(600多个)。三、知识巩固(1)回顾上课前的学习目标,对本节课知识点进行总结。(2)使用第一章课后作业。第5节:Jupyter的使用(认识Jupyter、启动方式、工作原理、使用方法)一、回顾上节课内容(1)对上节课布置的作业以及学生提出的问题进行答疑解惑。(2)回顾上节课内容,引出本节课主题。(3)明确学习方向。了解jupyter的工作原理和特点。掌握jupyter的常见操作。了解Markdown的常见命令以及意义。二、知识讲解认识jupyter概念:Jupyter是一个集Python编程语言以及其他编程语言的、交互式集成开发环境,可以将代码执行、文本、数学、情节和富媒体组合到一个文档中。特点:写代码、看结果、写说明都在一起,Jupyter非常方便。应用:Jupyter一般用于数据清理和转换、数值模拟、统计建模和机器学习等。启动JupyterNotebook方法:在终端输入jupyternotebook命令、依次单击“开始”→Anaconda3→JupyterNotebook按钮、使用快捷方式等三种方法启动jupyternotebook应用。界面介绍:Files、Running、Clusters三个主要选项卡(默认进入Files选项卡)。Files选项卡是进入的用户根目录,开发者可以通过单击右侧的New按钮,新建Python3文件(格式为ipykernel)、文本文件(TextFile)、文件夹(Folder)、终端(Terminal)等。Jupyter工作原理基本原理:JupyterNotebook运行机制分为两部分:一部分是内核(Kernel),主要负责运行代码,通过ZeroMQ(一种中间件,用于通信)和NotebookServer(Notebook服务器)通信,同时可以返回Tab补全信息。JupyterNotebook运行原理如图所示。注意:本书使用的是Python3Kernel;另一部分是NotebookServer,使用Torando框架搭建而成,具有高并发的特点。交互工作流:IPython和文本编辑器在JupyterNotebook中开始使用IPython,IPython本身专注于交互式Python,其中一部分是为Jupyter提供Python内核。IPython为交互式计算提供了丰富的架构,内容如下:一个强大的交互式外壳。Jupyter的内核。支持交互式数据可视化和GUI工具包的使用。灵活、可嵌入的解释器,可加载到自己的项目中。易于使用的高性能并行计算工具。Jupyter使用方法创建新文件:开发者可以通过单击Files界面中的New按钮创建JupyterNotebook文件(以后简称Notebook),单击New按钮选择Python3内核进行创建Python文件,单击Folder按钮创建文件夹,单击TextFile按钮创建新的文本文件。举例:创建名为“数据预处理”的文件夹,并在创建好的文件夹中创建名为“hello”的Notebook文件。第一个程序:在“hello.ipynb”文件中,输入代码print("Hello,千峰")。Markdown操作:常见的Markdown命令使用说明和魔术命令介绍。三、知识巩固(1)回顾上课前的学习目标,对本节课知识点进行总结。(2)使用第一章课后作业。第6节:常见的数据预处理工具(NumPy、Pandas、SciPy)一、回顾上节课内容(1)对上节课布置的作业以及学生提出的问题进行答疑解惑。(2)回顾上节课内容,引出本节课主题。(3)明确学习方向。了解数组与数组对象、numpy的特点、应用领域、numpy常见函数。掌握Numpy库的常见操作,如:安装与导入numpy库、创建numpy数组、线性代数等。了解SciPy常见的子模块、特点以及应用领域。了解Pandas的特点、数据结构以及应用领域。掌握SciPy、Pandas库的常见操作。二、知识讲解Numpy数组与数组对象简介:NumPy(NumericalPython)是Python语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。概念:数组是指由相同类型的数据按有序的形式组织而成的一个集合,组成数组的各个数据称为数组的元素。数据结构:ndarray(又称为array)对象,该对象是一个N维数组对象,可以存储相同类型、以多种形式组织的数据。注意:与Python中的数组相比,ndarray对象可以处理结构更复杂的数据。NumPy的主要对象是多维数组。它是一个元素表(通常是数字),所有类型相同,由非负整数元组索引。在NumPy中,维度称为轴,轴的个数称为秩。数组对象参数:ndim、shape、size、dtype、itemsize。数组维度:分别介绍一维、二维、三维数组的结构。NumPy的发展:NumPy的前身Numeric最早是由JimHugunin与其他协作者共同开发,2005年,TravisOliphant在Numeric中结合了另一个同性质的程序库Numarray的特色,并加入了其他扩展而开发了NumPy。NumPy为开放源代码并且由许多协作者共同维护开发。特点NumPy是一个运行速度非常快的数学库,主要用于数组计算,内容如下。①强大的N维数组:NumPy的矢量化、索引和广播概念快速且通用,是当今阵列计算的事实标准。②数值计算工具:NumPy提供全面的数学函数、随机数生成器、线性代数例程、傅里叶变换等。③可互操作:NumPy支持广泛的硬件和计算平台,并且可以很好地与分布式、GPU和稀疏数组库配合使用。④高性能:NumPy的核心是经过良好优化的C代码。享受Python的灵活性和编译代码的速度。⑤便于使用:NumPy的高级语法使任何背景或经验水平的程序员都可以使用它并提高效率。⑥开源:NumPy在自由BSD许可下分发,由一个充满活力、响应迅速且多样化的社区在GitHub上公开开发和维护。应用/生态系统科学计算数组库数据科学机器学习可视化常见操作安装:condalist或pipinstallnumpy导入:importnumpy或importnumpyasnp创建数组举例:分别创建一维、多维数组、数组运算、数组排序、数组连接、数组重塑。Numpy通用函数:开方、求和、求平方、求绝对值、计算乘积、值大小比较等。利用Numpy检索数组元素、唯一化及其他集合逻辑。线性代数:点积计算、随机数模块random。举例:创建国际象棋棋盘,填充8×8矩阵。Scipy简介概述:开源的Python算法库和数学工具包,依赖于NumPy。功能:SciPy提供预先测试好的例程,因此可以在科学计算应用中节省大量处理时间。包含模块:最优化、线性代数、积分、插值、特殊函数、快速傅里叶变换、信号处理和图像处理、常微分方程求解和其他科学与工程中常用的计算。组成:Scipy由一些特殊功能的子模块组成,由各个子模块来实现数学算法和科学计算。特点①基本算法:SciPy为优化、积分、插值、特征值问题、代数方程、微分方程、统计和许多其他类型的问题提供算法。②高性能:SciPy封装了用Fortran、C和C++等低级语言编写的高度优化的实现,享受Python的灵活性和编译代码的速度。③广泛适用:SciPy提供的算法和数据结构广泛适用于各个领域。④便于使用:SciPy的高级语法使任何背景或经验水平的程序员都可以轻松访问并提高效率。⑤基础:扩展NumPy,为数组计算提供额外的工具,并提供专门的数据结构,例如稀疏矩阵和k维树。⑥开源:SciPy在自由BSD许可下分发,由一个充满活力响应迅速且多样化的社区在GitHub上公开开发和维护。应用/生态系统NumPy和SciPy的协同工作可以高效解决很多问题,在天文学、生物学、气象学和气候科学,以及材料科学等多个学科得到了广泛应用。常见操作导入库importnumpyasnpfromscipyimportioasspio文件输入/输出scipy.io:保存与查看MATLAB文件。特殊函数:scipy.special。线性代数操作:scipy.linalg。举例:求解线性方程组。SciPy插值:Ndiame图片处理。SciPy的ndimage子模块专用于图像处理,ndimage表示一个n维图像。图像处理中一些最常见的任务如下。①图像的输入、输出和显示。②基本操作,如裁剪、翻转、旋转等。③图像过滤,如去噪、锐化等。④图像分割,如标记对应于不同对象的像素。⑤分类。⑥特征提取。算法优化:梯度下降优化算法和最小二乘法优化算法。Pandas简介概述:Pandas是一个快速、强大、灵活且易于使用的开源数据分析和操作工具,构建在Python编程语言之上,基于NumPy,主要用于数据分析。Pandas的目标是成为任何语言中最强大、最灵活的开源数据分析、操作工具。功能:Pandas可以从各种文件格式比如CSV、JSON、SQL、MicrosoftExcel导入数据。Pandas可以对各种数据进行运算操作,比如归并、再成形、选择、数据清洗和数据加工特征。应用领域:Pandas广泛应用在学术、金融、统计学等各个数据分析领域。数据结构Pandas的主要数据结构是Series(一维数据)与DataFrame(二维数据。Series:概念:是一种类似于一维数组的对象。组成/数据结构:它由一组数据以及索引(index)组成。语法格式:pandas.Series(data,index,dtype,name,copy)。Series的语法及参数说明。注意:Series的索引值可以重复。DataFrame:是一个表格型的数据结构,它含有一组有序的列,每列可以是不同的值类型(数值、字符串、布尔型值)。组成/数据结构:DataFrame既有行索引也有列索引,它可以被看做由Series组成的字典(共用一个索引)。语法格式:pandas.DataFrame(data,index,columns,dtype,copy)。DataFrame的语法及参数说明。【拓展】面板(panel)是三维带标签的数组,是最重要的基础数据结构之一。panel有3个轴,为描述、操作Panel提供了支持,3个轴分别是items(0轴),major_axis(1轴),而minor_axis(2轴)。注意:Series类似于数组;DataFrame类似于表格;Panel可视为Excel的多表单Sheet。特点与优势特点提供了一个简单、高效、带有默认标签(也可以自定义标签)的DataFrame对象。能够快速得从不同格式的文件中加载数据(比如Excel、CSV、SQL文件),然后将其转换为可处理的对象。能够按数据的行、列标签进行分组,并对分组后的对象执行聚合和转换操作。能够很方便地实现数据归一化操作和缺失值处理。能够很方便地对DataFrame的数据列进行增加、修改或者删除的操作。能够处理不同格式的数据集,比如矩阵数据、异构数据表、时间序列等。提供了多种处理数据集的方式,如构建子集、切片、过滤、分组以及重新排序等。优势Pandas的DataFrame和Series构建了适用于数据分析的存储结构。Pandas简洁的API能够让读者更专注于代码的核心层面。Pandas实现了与其他库的集成,比如Scipy、scikit-learn和Matplotlib等。Pandas官方网站提供了完善资料支持,及其良好的社区环境。常见操作安装pandaspipinstallpandas或condainstallpandas创建数组举例:创建series、创建dataframe。数组统计:df.sum()、df.mean()、df.std()。并介绍常见的统计方法。处理缺失值:删除。拓展:稀疏数据和稀疏矩阵的介绍。可视化概念:将数据以图形的方式展现出来,与纯粹的数字表示相比,图形方式更为直观,更容易发现数据之间的规律。可视化类型:Pandas可以兼容Matplotlib语法,可以绘制折线图、散点图、等高线图、条形图、柱状图、3D图形、图形动画等。三、知识巩固(1)回顾上课前的学习目标,对本节课知识点进行总结。(2)使用第一章课后作业。习题教材第1章习题教学后记
数据获取与存储课程名称第2章数据获取与存储计划学时5学时内容分析本章主要介绍了数据的类型和数据文件类型、数据读写、网络爬虫获取数据并存储,以及数据库存储数据的方法;最后介绍了文本抽取的方法。教学目标与教学要求【知识目标】了解常见的数据类型。了解网络爬虫的原理,掌握爬虫获取数据的流程。熟悉常见的数据存储的方法。掌握使用数据库存储数据的方法。掌握抽取文本信息的方法。【技能目标】能使用网络爬虫直接获取网络信息。能熟练运用pandas工具,进行不同数据格式的转换。学会创建数据库并能够使用数据库来存储不同格式的数据。能运用合适的库进行文本信息的抽取。【育人目标】初步建立工程思维和数据安全意识,获取网页等信息需要遵守法律法规,引导学生在学习中健全职业道德的规范。通过学习网络爬虫,引导学生了解行业规范,遵守行业规则,加强对于社会信息安全的保护。通过使用数据库存储数据,培养学习理论与实际相结合的能力。遍历抽取新闻文本,引导学习关注时事,更加热爱祖国。教学重点网络爬虫获取数据。可读写数据。数据库存储数据。教学难点网络爬虫获取数据。可读写数据。数据库存储数据。文本抽取。教学方式课堂讲解及ppt演示教学过程第1节:常见的数据类型(数据类型、分类、Excel、CSV、JSON、XML、HTML、开放数据)一、提出需求,导入学习任务思考如何获取数据?基于上章内容知道,借助网络爬虫可实现获取外部数据,而Pandas工具可以读取内部数据。思考获取数据对于整个数据处理阶段的意义。数据获取是数据预处理的第一步,数据存储是进行数据预处理的关键环节,了解从多种渠道中获取与存储数据的方法,可以为数据处理做好数据准备。思考如何存储数据?存储数据就是将数据写入内存的过程,利用Python的pandas库可以实现数据的读取与写入过程。明确学习方向。了解常见数据的类型。了解不同格式文件的特点。二、知识讲解常见的文件类型数据分类的作用:数据分类就是把相同属性或特征的数据归集在一起,形成不同的类别,方便人们通过类别来对数据进行的查询、识别、管理、保护和使用。具体分类:按照数据类型分类,可将数据分为结构化数据、半结构化数据、非结构化数据,为大数据领域主流的三种数据类型。结构化数据概念:也称作行数据,是由二维表结构来逻辑表达和实现的数据,严格地遵循数据格式与长度规范,并且数据结构不经常性变化,主要通过关系型数据库进行存储和管理结合到典型场景中,如企业ERP、财务系统、医疗HIS数据库、教育一卡通、政府行政审批以及其他核心数据库等。举例:员工信息的结构化数据。数据特点:关系模型数据,关系数据库表示。常见格式:如MySQL、Oracle、SQLServer等格式。应用场合:数据库、系统网站、数据备份、ERP等。数据采集:DB导出、SQL等方式。非结构化数据概念:数据结构不规则或不完整,没有预定义的数据模型,不方便用数据库二维逻辑表来表现的数据,简单地说,非结构化数据库就是字段可变的数据库。如NoSQL数据库MongoDB,全文搜索数据库ElasticSearch等。举例:员工信息的结构化数据。数据特点:格式多样、标准多样。常见形式:文本(txt、doc/docx、ppt)、图像(png、jpeg、gif、psd)、音频(MP3、wma、wav、midi、mov)、视频(mp4、avi、mpeg、wmv)等。应用场合:图片识别、人脸识别、医疗影像、文本分析等。数据采集:网络爬虫、数据存档等方式。数据包括:所有格式的办公文档、文本、图片、HTML、各类报表、图像和音频、视频信息等。半结构化数据概念:介于结构化和非结构化之间的数据,是结构化数据的一种形式,结构变化很大,不能够简单地建立一个表和它对应。举例:员工的简历,常见的有XML和JSON格式。数据特点:它不符合关系型数据库或其他数据表的形式关联起来的数据模型结构,但包含相关标记,用来分隔语义元素以及对记录和字段进行分层。因此,也被称为自描述的结构。半结构化数据的存储方式介绍。结构化数据与非结构化数据比较:从特征、存在方式、分析方法、用例、数据存储、数据管理等方面进行比较,结构化与非结构化数据的比较。其他常见数据分类法:常见的数据分类的维度有:数据类型、数据产生环节、数据存储对象/位置、数据治理类型等。准备数据概述:分别介绍Excel文件、CSV文件、JSON文件、XML文件和HTML文件,最后了解获取开放数据的网站地址。Excel文件:常见的格式介绍,示例:学生信息表。CSV文件:是最常见的供机器读取的文件格式,即逗号分隔值文件,有时也称为字符分隔值,因为分隔字符也可以不是逗号,文件以纯文本形式存储表格数据(数字和文本),通常都是纯文本文件。示例:使用记事本打开学生信息表。JSON:JSON为数据存储和传输最重要的格式,经常在数据从服务器发送到网页时使用。优点是结构清晰、易于阅读且方便解析。JSON示例:使用JSON语法定义一个雇员对象,包含三条员工记录的数组(对象)。注意:如果文件的扩展名是.json,数据格式是JSON数据。如果文件扩展名是.js,文件格式可能是JavaScript文件,也可能是命名不规范的JSON文件。JSON语法规则:①数据是名称/值对。②数据由逗号分隔。③花括号保存对象。④方括号保存数组。XML:XML格式的数据既便于机器读取,也便于人工读取。如果文件的扩展名是.xml,那么文件是XML数据。如果文件扩展名是.html或.xhtml,可以用XML解析器来解析。XML文件本质上只是格式特殊的数据文件。示例:创建country.xml文件,其中包含节点和节点属性。XML和HTML区别:概念不同——XML是可扩展标记语言,而HTML超文本标记语言。目的不同——XML被设计用来传输和存储数据,重点是数据的内容,HTML被设计用来显示数据和编辑网页,重点是数据的外观。语法有所不同——XML语法比较严谨而HTML语法比较松散。HTML旨在显示信息,而XML旨在传输信息。XML不是HTML的替代,XML是对HTML的补充。注意:HTML又叫超文本标记语言或超文本链接标志语言,是一种制作万维网页面的标准语言,消除了不同计算机之间信息交流的障碍。示例:分析《Hello,world.html》标签文件。获取开放数据,分享一些资源共享网站。三、知识巩固(1)回顾上课前的学习目标,对本节课知识点进行总结。(2)使用第二章课后作业。第2节:网络爬虫获取数据(下载与安装、验证运行、运行方式)一、回顾上节课内容(1)对上节课布置的作业以及学生提出的问题进行答疑解惑。(2)回顾上节课内容,引出本节课主题。(3)明确学习方向。了解网络爬虫的概念、特点和类型。了解网络爬虫的执行过程。掌握爬取信息的一般过程。了解信息存储的不同方式。二、知识讲解认识网络爬虫概念:网络爬虫(WebSpider)又称“网络蜘蛛”或“网络机器人”,是指从网站上获取数据信息的过程,该方法可以将半结构化数据、非结构化数据从网页中抽取出来,将其存储为统一的本地数据,支持图片、音频、视频等数据采集。举例:日常使用的一系列搜索引擎都是大型的网络爬虫,如百度、搜狗、360浏览器、GoogleChrome搜索等。每个搜索引擎都拥有自己的爬虫程序,比如360浏览器的爬虫称作360Spider,搜狗的爬虫称作Sogouspider等。按照系统结构和实现技术分类:通用网络爬虫、聚焦网络爬虫、增量式网络爬虫、深层网络爬虫。注意:实际的网络爬虫系统通常是几种爬虫技术相结合实现的。双刃剑:不仅能够在搜索引擎领域使用,还在大数据分析以及商业领域得到大规模应用,它给大家带来便利的同时,也给网络安全带来了隐患。措施:为了限制爬虫带来的危险,大多数网站都有良好的反爬措施,并通过robots.txt协议做了进一步说明,因此读者在使用爬虫的时候,要自觉遵守robots协议,不要非法获取他人信息,或者做一些危害他人网站的事情。执行过程网络爬虫的基本执行流程可以总结为三个过程:请求数据、解析数据与保存数据。数据请求:请求的数据除了HTML之外,还有json数据、字符串数据、图片、视频、音频等。解析数据:当一个数据下载完成后,对数据中的内容进行分析,并提取出需要的数据,提取到的数据可以以多种形式保存起来,数据的格式有非常多种,常见的有csv、json、pickle等。保存数据:最后将数据以某种格式(CSV、JSON)写入文件中或存储到数据库(MySQL、MongoDB),同时保存为一种或者多种。爬取百度logo相关概念URL基本组成:URL由一些简单的组件构成,协议、域名、端口号、路径和查询字符串等。示例:/index?param=10其中,路径和查询字符串之间使用问号“?”隔开。上述示例的域名为,路径为index,查询字符串为param=10。网页组成:一般由三部分组成,分别是HTML(超文本标记语言)、CSS(层叠样式表)和JavaScript(简称“JS”动态脚本语言),它们三者在网页中分别承担着不同的任务。①HTML负责定义网页的内容。②CSS负责描述网页的布局。③JavaScript负责网页的行为。静态网页:是标准的HTML文件,通过GET请求方法可以直接获取,文件的扩展名是.html、.htm等,网页中可以包含文本、图像、声音、FLASH动画、客户端脚本和其他插件程序等。动态网页:是指采用动态网页技术的页面,比如AJAX(一种创建交互式、快速动态网页应用的网页开发技术)、ASP(一种创建动态交互式网页并建立强大的web应用程序)、JSP(Java语言创建动态网页的技术标准)等技术,不需要重新加载整个页面内容,就可以实现网页的局部更新。相关库介绍Urllib库:是Python内置的urllib库,用于获取网页的html信息。注意:urllib库属于Python的标准库模块,无须单独安装,同时它也是Python爬虫的常用模块。Requests:是Python内置的模块,该模块主要是用来发送HTTP请求,requests模块比urllib模块更简洁。程序实现如下:importrequests#导入requests包x=requests.get('/')#发送请求print(x.text)#返回网页内容注意:requests模块属于Python内置的标准库模块,无须单独安装,每次调用requests请求之后,会返回一个response对象,该对象包含了具体的响应信息。Lxml:是Python的第三方解析库,完全使用Python语言编写,它对Xpath表达式提供了良好的支持,因此能够高效地解析HTML/XML文档。Pip安装:pipinstalllxml验证安装:importlxmlBeautifulSoup简称BS4(其中4表示版本号)是一个Python第三方库,它可以从HTML或XML文档中快速地提取指定的数据。Pip安装:pipinstallbs4安装解析库:pipinstalllxml举例:爬取百度首页logo,并保存在本地,名称为“logo.png”。urlretrieve()函数:可以直接将远程数据下载到本地。语法如下:urlretrieve(url,filename=None,reporthook=None,data=None)常见的存储方式云存储适用:数据较小的情况。保存方式:将数据保存在共享网盘或云服务器(Dropbox、Box、Amazon、GoogleDrive)中。功能:通常都会提供备份选项和管理能力,同时还能够分享文件。Python有内置的URL请求方法、FTP(文件传输协议)方法和SSH/SCP(SecureShell/SecureCopy)方法,都包含在Python标准库(stdlib)中。本地存储优点:最简单也是最直接的方法。方法:用一行Python代码就可以打开文件系统中的文档,比如open命令。在处理数据时,还可以使用Python内置的file.write方法修改并保存为新文件。常见的数据存储格式:JSON、CSV、XML等。其他存储方式层次型数据格式(HDF):是基于文件的可扩展数据解决方案,可将大型数据库快速存储至文件系统(本地或其他位置)。可以存储为不同类型的图像和数码数据的文件格式,并且可以在不同类型的机器上传输,同时还有统一处理这种文件格式的函数库。大多数普通计算机都支持这种文件格式。Hadoop:是一个大数据分布式存储系统,可以跨集群存储并处理数据,提供对应用程序数据的高吞吐量访问。三、知识巩固(1)回顾上课前的学习目标,对本节课知识点进行总结。(2)使用第二章课后作业。第3节:数据读写(可读写数据、CSV、JSON、Excel和XML)一、回顾上节课内容(1)对上节课布置的作业以及学生提出的问题进行答疑解惑。(2)回顾上节课内容,引出本节课主题。(3)明确学习方向。了解读取本地数据的方法和常见的API。学会读取CSV、JSON、Excel和XML文件,尤其是使用Pandas读取。掌握通过Pandas库读取与写入不同格式文件的过程。二、知识讲解可读写数据读取本地数据本地文件的界定:指向一个本地存储的文件,可以是一个链接或者一个映射。导入文件地址的三种方式:path1='C:\\Users\\Administrator\\Desktop\\student.csv'path2='C:/Users/Administratorf/Desktop/student.csv'path3=r'C:\Users\Administrator\Desktop\student.csv'注意:本地文件为student.csv。注意:可以用open()函数读取文件,同时可以用read()函数来读取文件中的具体内容。open语句语法格式:open('路径','模式',encoding='编码')编码有中文的话就要加encoding='utf8'。模式:r为只读,为默认模式;w为写入;rw为读取+写入;a为追加模式。简单的文件读取方式为read(),读取后,光标会留在读取末尾。注意:如果用read()再次读取文件,会因为光标在末尾所以读取不了任何数据。举例:读取本地文件student.csv。I/OAPI工具常见的API函数读取函数写入函数读取函数写入函数read_csvto_csvread_xmlto_xmlread_excelto_excelread_statato_stataread_jsonto_jsonread_clipboardto_clipboardread_htmlto_htmlread_pickleto_pickleread_sqlto_sqlread_msgpackto_msgpackread_hdfto_hdfread_gbqto_gbq读写CSV文件文本文件常见的文本文件:TXT文件、CSV文件和PDF格式文件。读写文本文件方法:readline()#每次读入一行数据。readlines()#一次性读入所有数据。将读取的每行数据存储为一个字符串,包含换行符,得到由每行字符串组成的列表。注意:windows系统的换行符是“\r\n”,linux系统的换行符号是“\n”。strip()方法用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列。注意:该方法只能删除开头或是结尾的字符,不能删除中间部分的字符。对读入的数据使用for循环对每行字符串去除换行符,并以“\t”的形式对字符串进行分割,返回一个列表。创建CSV文件举例:创建一个学生信息的TXT文件,然后将文件扩展名改为.csv,这样就成功创建了一个CSV数据文件。注意:创建的文件名称为:student,初始的文件扩展名为.txt,修改后文件的扩展名为.csv。读取CSV文件使用Pandas读取CSV文件,读取语法格式pandas.read_csv(filepath_or_buffer,sep=',',delimiter=None,header='infer',names=None,index_col=None,encoding=None)各参数说明如下。filepath_or_buffer:文件所在处的路径,这是唯一一个必须有的参数。sep:指定分隔符,默认为逗号’,’。delimiter:定界符,备选分隔符(如果指定该参数,则sep参数失效)。header:默认为infer指定哪一行作为表头。默认设置为0(即第一行作为表头),如果没有表头的话,要修改参数设置header=Ns:指定列的名称,可用列表表示。没有表头即header=None时,指定该参数。index_col:指定哪一列数据作为行索引,可以是一列,也可以多列。如果有多列数据则会看到一个分层索引。encoding:通常设置encoding=”utf-8”,指定字符集类型。如果文件名中有中文,容易导致乱码。engine="python"可以避免文件路径中有中文,encoding="utf_8_sig"可以使读取的内容中有中文。Pandas读取文本数据主要有两个函数,read_csv()和read_table(),read_table()函数不仅可以读取CSV文本格式文件,还可以读取TXT等文本格式文件。它们能够自动地将表格数据转换为DataFrame对象。举例:分别通过列表下标、key读取CSV数据。拓展:迭代器(iterator)有时又称光标(cursor)是程序设计的软件设计模式,可在容器对象(例如链表或数组)上遍访的接口,设计人员无需关心容器对象的内存分配的实现细节。写入CSV数据方法:可以使用Pandas包写入文件、使用writer创建对象,writerow(s)写入文件、使用DictWriter创建对象,writerow(s)写入文件。举例:利用Pandas包写入CSV文件。方法:Pandas提供的to_csv()函数用于将DataFrame转换为CSV数据。如果想要把CSV数据写入文件,只需向函数传递一个文件对象即可。否则,CSV数据将以字符串格式返回。举例:指定CSV文件输出时的分隔符,并保存文件。注意:pd.NaT表示null,即缺失数据,分隔符为“|”,打开桌面的pandas.csv文件。举例:使用writer创建对象,writerow(s)写入文件。举例:使用DictWriter创建对象,writerow(s)写入文件。读写JSON文件序列化:是指将数据转换为一系列字节通过网络存储或传输,即JSON编码的过程。反序列化:解码以JSON标准存储或交付的数据的交互过程。导入Python内置的json包importjsonPython处理json文件常见函数,json.dumps/json.loads数据转换对照。序列化JSON文件将简单的Python对象直观的转换为JSON。创建序列化数据。查看文本文件内容:数据直接以文本方式保存,通常可以添加一行程序,来查看文件内容;打印出文本格式数据。数据直接以字符串的方式使用。注意:写入json的内容只能是Python字典类型,其他格式如字符串类型将会导致写入格式出错。withopen("res.json",'w',encoding='utf-8')asfw:json.dump(json_str,fw,indent=4,ensure_ascii=False)注意:将JSON字符串转为字典时,如果字符串不是合法的JSON格式,会报JSONDecodeError错误。反序列化JSON文件在json库中使用load()和loads()用于将JSON编码数据转换为Python对象。读取写入json文件的数据。创建字符串数据。读写XML文件BeautifulSoup4库:可以从HTML或XML文件中提取数据的Python库,可以通过转换器实现文档导航、查找、修改文档等功能。Crawley库:可以快速爬取对应网站的相关内容,支持关系和非关系数据库,数据可以导出的格式为JSON、XML等的文件。读取XML文件常用的读取XML文件的命令下表。程序代码说明tree=ET.parse(‘test.xml’)读取文档root=tree.getroot()获得根节点list(root)获得所有子节点root.findall(‘object’)查找子节点,注意这里不会递归查找所有子节点root.iter(‘object’)查找子节点,递归查找所有子节点root.tag查看节点名称写入XML文件常用的写入XML文件的命令如表。程序代码说明root=ET.Element(‘Root’)创建节点tree=ET.ElementTree(root)创建文档element.text=‘default’设置文本值element.set(‘age’,str(i))设置属性root.append(element)添加节点tree.write(‘default.xml’,encoding=‘utf-8’,xml_declaration=True)写入文档读写Excel文件概念:Excel是微软公司开发的数据处理的软件。优势:在数据量较少的情况下,Excel对于数据的处理、分析、可视化有其独特的优势。当数据量非常大时,比如操作重复、数据分析难等问题,Excel难以实现。Pandas提供了操作Excel文件的函数,可以很方便地处理Excel表格。解析Excel文件pypi是Python库的汇总在线目录,保存了大量的Python包及其元数据和文档。注意:解析Excel文件用的是xlrd库,处理Excel文件的库。常见的处理Excel文件的库如表。名称功能xlrd向Excel文件写入,并设置格式xlwt向Excel文件写入,并设置格式xlutils一组Excel高级操作工具(需要先安装xlrd和xlwt)检查是否安装xlrd方法:importxlrd通过pip安装外部包xlrd:pipinstallxlrd通过pip卸载外部包xlrd:pipuninstallxlrd读取Excel文件Pandas的read_excel()方法以及各参数说明。DataFrame.to_excel(excel_writer,sheet_name='Sheet1',na_rep='',float_format=None,columns=None,header=True,index=True,index_label=None,startrow=0,startcol=0,engine=None,merge_cells=True,encoding=None,inf_rep='inf',verbose=True,freeze_panes=None)to_excel保存数据Pandas的to_excel()方法以及各参数说明。DataFrame.to_excel(excel_writer,sheet_name='Sheet1',na_rep='',float_format=None,columns=None,header=True,index=True,index_label=None,startrow=0,startcol=0,engine=None,merge_cells=True,encoding=None,inf_rep='inf',verbose=True,freeze_panes=None)举例:创建一个学生信息表。三、知识巩固(1)回顾上课前的学习目标,对本节课知识点进行总结。(2)使用第二章课后作业。第4节:使用数据库实现数据存储(数据库、关系型数据库、数据存储)一、回顾上节课内容(1)对上节课布置的作业以及学生提出的问题进行答疑解惑。(2)回顾上节课内容,引出本节课主题。(3)明确学习方向。了解数据库的概念、原理、特点。学会使用数据库存储信息。二、知识讲解初识数据库概念:数据库是“按照数据结构来组织、存储和管理数据的仓库”,是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。理解:家里的冰箱是用来储存食物的地方,同样地,数据库是用来存放数据的地方。有了数据库后,可以直接查找数据。例如,电话簿可以被看做一个数据库,其中包含某地区所有居民的姓名、电话号码和地址等信息。又假如每天使用余额宝查看自己的账户收益,就是从数据库读取数据后展示给用户的。定义理解如下图所示。数据库常见分类:关系型数据库和非关系型数据库。其中,使用最广泛的就是关系型数据库。概念:关系型数据库里存放的也是一张一张的表,不过各个表之间是有联系的。简单来说:关系数据库=多张表+各表之间的关系。关系型数据库结构如下图所示。数据库管理系统:简称DBMS,是用来管理数据库的计算机软件,也是实现数据库原理的“施工团队”。DBMS功能:充当数据库与其用户或程序之间的接口,允许用户检索、更新和管理信息的组织和优化方式。此外,DBMS还有助于监督和控制数据库,提供各种管理操作,例如性能监视、调优、备份和恢复。常用的关系数据库管理系统有:mysql、orcale和sqlserver等。SQL:译为“结构化查询语言”,是一种数据库操作语言,用来检索和管理关系型数据库中的数据,比如插入数据、删除数据、查询数据、创建和修改表等。SQL理解:把数据库比如一碗米饭,里面放的米是数据。现在要吃碗里的米饭,怎么取出碗里的米饭呢?拿一双筷子,用筷子夹起碗里的米饭,筷子就是SQL,用来操作数据库里的数据。SQL原理如下图所示。SQL包含以下4部分。数据定义语言(DataDefinitionLanguage,DDL)用来创建或删除数据库以及表等对象,主要包含以下几种命令。DROP:删除数据库和表等对象。CREATE:创建数据库和表等对象。ALTER:修改数据库和表等对象的结构。数据操作语言(DataManipulationLanguage,DML)用来变更表中的记录,主要包含以下几种命令。SELECT:查询表中的数据。INSERT:向表中插入新数据。UPDATE:更新表中的数据。DELETE:删除表中的数据。数据查询语言(DataQueryLanguage,DQL)用来查询表中的记录,主要包含SELECT命令,来查询表中的数据。数据控制语言(DataControlLanguage,DCL)用来确认或者取消对数据库中的数据进行的变更。除此之外,还可以对数据库中的用户设定权限。主要包含以下几种命令。GRANT:赋予用户操作权限。REVOKE:取消用户的操作权限。COMMIT:确认对数据库中的数据进行的变更。ROLLBACK:取消对数据库中的数据进行的变更。数据库存储数据创建MySQLdb创建MySQLdb是Python中操作MySQL的功能包,在命令行中使用pip即可安装。pipinstallmysql-python建立连接导入相关库importmysql-pythonimportMySQLdb.cursors连接数据库使用以下代码建立MySQL数据库连接,其中host为数据库的主机地址,可以使用或者localhost表示本机,user和passwd分别为数据库的用户名和密码,db表示接下来要操作的数据库,port和charset表示连接的端口和字符集。db=MySQLdb.connect(host='',user='root',passwd='root',db='douban',port=8889,charset='utf8',cursorclass=MySQLdb.cursors.DictCursor)db.autocommit(True)cursor=db.cursor()执行操作查看数据库在MySQL中,可使用SHOWDATABASES语句来查看或显示当前用户权限范围以内的数据库。查看数据库的语法格式如下。SHOWDATABASES[LIKE'数据库名'];创建数据库在MySQL中,可以使用CREATEDATABASE语句创建数据库,语法格式如下。CREATEDATABASE[IFNOTEXISTS]<数据库名>[[DEFAULT]CHARACTERSET<字符集名>][[DEFAULT]COLLATE<校对规则名>];修改数据库在MySQL中,可以使用ALTERDATABASE来修改已经被创建或者存在的数据库的相关参数。修改数据库的语法格式如下。ALTERDATABASE[数据库名]{[DEFAULT]CHARACTERSET<字符集名>|[DEFAULT]COLLATE<校对规则名>}删除数据库在MySQL中,可以使用CREATEDATABASE语句创建数据库,语法格式如下。DROPDATABASE[IFEXISTS]<数据库名>选择数据库在MySQL中,USE语句用来完成一个数据库到另一个数据库的跳转。当用CREATEDATABASE语句创建数据库之后,该数据库不会自动成为当前数据库,需要用USE来指定当前数据库。其语法格式为如下。USE<数据库名>关闭连接使用Python操作完数据库之后,需要关闭数据库连接。#关闭数据库curcor.close()db.close()三、知识巩固(1)回顾上课前的学习目标,对本节课知识点进行总结。(2)使用第二章课后作业。第5节:遍历文件批量抽取文本内容(实战1)一、任务分析背景大数据时代,数据获取方式也多种多样起来,处理不同格式的文档有不同的方法。获取结构化数据和半结构化数据可以直接提取文本信息,再进一步对数据进行预处理;而对于非结构化数据,如图片、音频等数据时,可以采取一定的方法获取其数据特征矩阵。数据是智能时代的根基,但无论是以数据库文件为代表的结构化数据、网页数据为代表的半结构化数据,还是以图片、音视频为代表的非结构化数据,往往都是五花八门、杂乱无章的。那么,如何对不同类型的数据进行数据集成,将其处理成统一的文档格式输入到算法模型之中,成为数据处理的首要任务。功能实现文本的批量抽取,对PDF和Word文档进行文本内容的抽取,并实现根目录下文本信息的批量抽取,最后自动保存到指定位置。①递归读取文件内容。②遍历抽取新闻文本信息。③保存文件信息。实现思路递归读取文件切分文件上级目录和文件名。修改转化后的文件名。设置保存路径。加载处理应用,将PDF转为txt文本。遍历抽取文本初始化方法参数。遍历目录文件。遍历目录子文件。批量抽取文本信息。二、任务分析文本预处理读入文本。分词。建立字典,将每个词映射到一个唯一的索引(index)。将文本从词的序列转换为索引的序列,方便输入模型。文本抽取文本抽取就是对这些文本数据的集成与提取,然后进行格式化处理。常用抽取方法:使用在线格式转换工具转换。使用Office内置格式进行转换。自己开发文本抽取工具进行文本抽取。文本抽取的原理如下图。Pywin32库介绍Pywin32是Python的第三方库文件,它提供了从Python访问WindowsAPI的功能。安装Pywin32库:pipinstallPywin32。编写代码完成案例的开发抽取Word文档导入相关库。切分文件上级目录和文件名。修改转化后的文件名。文件转化后的保存路径。加载处理应用,word转为txt。抽取PDF文档导入相关库。切分文件上级目录和文件名。修改转化后的文件名。文件转化后的保存路径。加载处理应用,pdf转为txt。三、任务实现递归读取文件内容导入相关库初始化G遍历目录文件递归遍历所有文件,并提供具体文件操作功能main主函数里调用方法遍历抽取新闻文本信息遍历抽取文件遍历目录文件遍历目录子文件批量抽取文本信息结论:(1)代码功能描述:将Word文件转存为txt文件,默认存储在当前路径下,可以指定存储文件的路径。(2)参数描述:其中filePath表示文件路径,savePath表示指定的保存路径。(3)结果分析:首先对文件路径进行处理,即分割成根目录和文件名,其目的是为了实现文件后缀的修改,并设置新的保存路径。然后加载内置方法Dispatch对文本信息进行提取。四、知识巩固(1)回顾上课前的学习目标,对本节课知识点进行总结。(2)使用第二章课后作业。习题教材第2章习题教学后记
数据清洗课程名称第3章数据清洗计划学时6学时内容分析本章主要介绍数据清洗的一般过程和重要性、导入并审视数据、缺失值的检测和处理、重复值的检测与处理方法、异常值的检测与处理方法和时间日期的格式处理。教学目标与教学要求【知识目标】了解数据清洗的意义掌握检测与处理缺失值的三种方法掌握检测与处理重复值的方法掌握检测与处理异常值的方法,了解3σ原则和箱型图的原理。了解常见时间日期格式与处理格式不一致的方法。【技能目标】能选用合适的工具来审核数据。能选用合适方法来检测并处理缺失值。能选用合适方法来检测并处理重复值。能选用合适方法来检测并处理异常值。能识别常见的时间日期格式并掌握转换文件格式的方法。【育人目标】通过处理缺失值的示例,引导学生不同学科之间是有紧密联系的,事物之间具有普遍联系,积极引导学生进行知识之间的迁移。处理时间日期格式数据,引导我们珍惜时间、珍惜当下。通过学习用户用电数据清洗案例,引导学生节约用电、养成良好的生活习惯。教学重点检测缺失值、填充缺失值、删除缺失值、线性插值、检测重复值数据、去除重复值、检测异常数据、处理异常值。教学难点处理缺失值、检测异常值、处理异常值。教学方式课堂讲解及ppt演示教学过程第1节:数据清洗概述(导入与审视数据、缺失值、异常值、重复值、时间日期)一、提出需求,导入学习任务思考如何清洗数据?常见的数据问题有缺失值、重复值、异常值等,清洗数据就是处理这些常见的数据问题,为得到更为干净的数据。明确学习方向。了解数据清洗的概念、目标和一致性检查等。了解数据清洗的必要性。掌握导入和审视数据的方法。二、知识讲解初识数据清洗概念:数据清洗又叫数据清理或数据净化,是指在数据文件中发现和纠正可识别错误的最后一个程序,包括检查数据一致性、处理无效值和缺失值等。脏数据:例如,需要从数据仓库中提取一些数据,但由于数据仓库通常是针对某一主题的数据集合,这些数据是从多个业务系统中提取的,因此不可避免地包含不完整的数据、错误的数据和重复数据,这些数据被称为脏数据。借助工具按照一定的规则清理这些脏数据,以确保后续分析结果的准确性,这个过程就是数据清洗。数据清洗目标:格式标准化,异常数据清除,错误纠正,重复数据的清除。措施:数据清洗通过填写缺失的值、光滑噪声数据、识别或删除离群点并解决不一致性来“清理”数据。原理:利用有关技术如数据统计、数据挖掘将脏数据转化为满足数据质量要求的数据。如下图所示。一致性检查:根据每个变量的合理取值范围和相互关系,检查数据是否合乎要求,发现超出正常范围、逻辑上不合理或者相互矛盾的数据。例如,用1-7级量表测量的变量出现了0值,体重出现了负数,都应视为超出正常值域范围。数据清洗必要性适用性:对于获取的数据,有些格式良好方便使用,但大部分数据即使清洗过,也会有格式不一致和可读性差等问题。如首字母缩写或描述性标题不匹配,特别是数据来自多个数据集时。应用性:清洗数据可以让数据更容易存储、搜索和复用。如一个数据集中有多列,应该保存成特定的数据类型,如日期、号码或电子邮件地址。如果能将预期格式标准化、清洗或删除不合格的数据,就可以保证数据的一致性,在需要查询数据集时也比较方便。地位:数据清洗是数据预处理的关键环节,占整个数据分析过程的50%到70%的时间,通俗的说,就是检测到数据中的异常部分,如数据的缺失、重复和异常等,然后将良莠不齐的“脏”数据,清洗成满足实际需求的质量较高的“干净”数据。导入与审视数据读入CSV数据:举例:读入泰坦尼克号CSV数据。审视整体数据的目的:观察各数据字段的数据类型,分清楚连续型数据、分类型数据和时间型数据,查看数据有无缺失的部分。审视整体数据data.head()#查看数据集前5行data.tail()#查看数据集倒数5行data.shape#查看数据集维度data.dtypes#查看数据集数据类型()#查看数据集基本信息data.columns#查看数据集列名data.describe()#查看数据集的统计信息data.isna().sum()#查看数据集每一列有无空值审视局部数据data.Age#筛选指定列,Age列数据data.Age.unique()#查看列去重下的唯一值data.Age.value_counts(dropna=False)#查看列各值的个数,True为包含,值为空的,False为不包含data.iloc[4]#筛选第4行数据。data.iloc[0:4]#筛选指定行,第0-3行数据。data.iloc[:,0:4]#筛选数据集的第0-4列数据。data.iloc[[0,2,4],[3,4]]#筛选指定行和指定列,逗号前是行后是列。筛选第0、2、4行数据的第3、4列数据。data.sort_values(by=[‘Age’],ascending=True)#按照某一列的值从小到大排序。True为从小到大,False为从大到小。三、知识巩固(1)回顾上课前的学习目标,对本节课知识点进行总结。(2)使用第三章课后作业。第2节:缺失值处理(产生原因、检测、填充、删除、插补)一、回顾上节课内容(1)对上节课布置的作业以及学生提出的问题进行答疑解惑。(2)回顾上节课内容,引出本节课主题。(3)明确学习方向。了解常见的数据缺失值的产生原因。掌握缺失值的检测方法,学会使用四种检测函数。掌握处理缺失值的三种方法:填充、删除和插补。二、知识讲解产生原因缺失值概念:指样本数据中某个或某些属性的值不全。产生原因:机械故障和人为因素等。举例:在很多时候,人们不愿意过多透露自己的信息。假如市场调查员正在对用户的某一项产品的体验做调查报告,然后发现某些用户很乐意分享自己使用产品的体验,但是不愿意透露自己的姓名和联系方式;还有一些用户会愿意分享他们使用产品的全部经过,包括自己的姓名和联系方式。因此,生活中总有一些数据会因为某些不可抗力的因素丢失。危害:若使用存在缺失值的数据进行分析,会降低预测结果的准确率。Pandas中的NaN值来自NumPy库,NumPy中缺失值有几种表示形式:NaN,NAN,nan,而且缺失值和其它数据类型不同,缺失值毫无意义并且NaN不等于0,也不等于空串。特别注意:NaN、NAN和nan也是互不相等的。检测缺失数据方法:Pandas使用isnull()、isna()、notnull()和notna()四个方法来检测缺失值。其他方法:若要直观地统计表中各列的缺失率,可以使用自定义函数或者missingno库来实现。方法说明isnull()若返回的值为True,说明存在缺失值notnull()若返回的值为False,说明存在缺失值isna()若返回的值为True,说明存在缺失值notna()若返回的值为False,说明存在缺失值举例1:创建并打印出二维数据,并判断数据中有无空值。举例2:导入本地文件《上海餐饮数据.csv》,查看数据是否有空值。填充缺失值fillna()概念:一般会将如平均数、中位数、众数、缺失值等前后的数据填充至空缺位置。针对属性类的数据:年龄、身高等数据,只能简单填充;针对离散类分类数据,通常是填充不了的,只能删除;只有连续类数值数据适合填充。填充缺失值fillna()函数语法格式与参数说明DataFrame.fillna(value=None,method=None,axis=None,inplace=False,limit=None,downcast=None)举例:使用数据的平均值自动填充学生的信息数据。注意:np.mean()函数功能用于求取均值,np.around()函数用于返回五舍六入后的值,可指定精度。fillna()函数填充的数据为一个字典数据。文件填充缺失值
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论