Python数据分析基础第8章用pandas-进行数据预处理课件

PPT
  • 阅读 74 次
  • 下载 0 次
  • 页数 37 页
  • 大小 532.842 KB
  • 2022-11-12 上传
  • 收藏
  • 违规举报
  • © 版权认领
下载文档25.00 元 加入VIP免费下载
此文档由【小橙橙】提供上传,收益归文档提供者,本网站只提供存储服务。若此文档侵犯了您的版权,欢迎进行违规举报版权认领
Python数据分析基础第8章用pandas-进行数据预处理课件
可在后台配置第一页与第二页中间广告代码
Python数据分析基础第8章用pandas-进行数据预处理课件
可在后台配置第二页与第三页中间广告代码
Python数据分析基础第8章用pandas-进行数据预处理课件
可在后台配置第三页与第四页中间广告代码
Python数据分析基础第8章用pandas-进行数据预处理课件
Python数据分析基础第8章用pandas-进行数据预处理课件
还剩10页未读,继续阅读
【这是免费文档,您可以免费阅读】
/ 37
  • 收藏
  • 违规举报
  • © 版权认领
下载文档25.00 元 加入VIP免费下载
文本内容

【文档说明】Python数据分析基础第8章用pandas-进行数据预处理课件.pptx,共(37)页,532.842 KB,由小橙橙上传

转载请保留链接:https://www.ichengzhen.cn/view-2433.html

以下为本文档部分文字说明:

第8章用pandas进行数据预处理学习目标:⚫掌握重复值、缺失值和异常值的处理。⚫掌握数据合并和数据抽取。⚫掌握重塑层次化索引、映射与数据转换。⚫掌握排列与随机抽样。⚫掌握日期和字符串处理。数据清洗是发现并纠正数据文件中可识别的错误,如移除重复数据,处理缺失值和空格值,检测

和过滤异常值,并检查数据一致性等。通过数据清洗不仅要使通过清洗后的数据变的可用,而且还要使数据变的更加适合进行后续的数据分析工作。从数据采集所获得的原始数据集中,往往会存在着许多重复数据。所谓重复数据是指在数据结构中所有列的

内容都相同,即行重复。而处理重复数据是数据分析中经常要面对的问题之一。8.1.1重复值的处理pandas提供了duplicated()和drop_duplicates()函数可用于标记及删除重复数据。1、duplicate

d()函数duplicated()函数用于标记Series中的值、DataFrame中的记录行是否是重复,重复为True,不重复为False。函数语法格式及参数说明见教材。2、drop_duplicates()函数drop_duplicates()函数用于删除Series、

DataFrame中重复记录,并返回删除重复后的结果。函数语法格式及参数说明见教材。示例【例8-1】8.1.1重复值的处理在Python中,pandas使用浮点值NaN表示浮点数和非浮点数组中的缺失值,同时Python内置None值也会被当作是缺失值。在处

理缺失值之前,首先要判断缺失值是否存在,然后再对缺失值进行删除、填充或者不处理的操作。1、判断缺失值的函数(1)isnull()函数:用于检查空值或缺失值的对象;如果有空值或缺失值则返回True,否则返回False。(2)

notnull()函数:用于检查不为空值或缺失值的对象;如果有空值或缺失值则返回False,否则返回True。通过isnull()函数和sum()函数可以获得Series和DataFrame中缺失值的数量8.1.2缺失值的处理2、处理缺失值的方法(1)

删除含有缺失值的记录在数据分析中,如果数据集的样本很大,并且在删除含有缺失值的记录后,不会影响分析结果的客观性和准确性时,一般是使用dropna()函数直接将空值或缺失值的数据删除。dropna()函数说

明见教材,应用示例【例8-2】。(2)数据插补法在数据分析中,如果数据集的样本比较少或者由于删除含有缺失值的记录会影响到数据分析结果的客观性和准确性时,就需要根据数据插补的方法来选择填充值,然后再使用fillna()函数对空值或缺失值进

行填充。fillna()函数说明、常用数据插补方法见表8-1见教材,应用示例【例8-3】8.1.2缺失值的处理所谓异常值,就是在数据集中存在不合理的值,又称离群点。例如年龄为负数,成绩大于100或小于零,商品评分超出5

分或商品日销售量远远超过年销售量等,都属于异常值的范围。1.判别数据集中异常值方法(1)散点图分析(2)简单统计分析例如,年龄属性值的区间规定为[0:150],如果数据集样本中的年龄值不在该区间范围内,则表示该样本的年龄属性属于异常值。8.1.3异常值的处理1.判别数据集中异

常值方法(3)3δ原则3δ原则是指当数据服从正态分布时,根据正态分布的定义可知,距离平均值3δ之外的概率为P(|x-μ|>3δ)<=0.003,这是属于极小的概率事件,因此,当样本距离平均值大于3δ时,则认定该样本为异常值。(4)箱型图分析箱型图提供了一个识别

异常值的标准,即大于或小于箱型图设定的上下界的数值即为异常值。8.1.3异常值的处理2.异常值的处理方法常用的异常值处理方法有以下4种。(1)删除含有异常值的记录。(2)将异常值视为缺失值,按照缺失值的处理方法来处理。(3)用平均值

来修正异常值。(4)对异常值不处理。示例【例8-4】8.1.3异常值的处理在数据采集时,往往会将数据分散存储于不同的数据集中。而在数据分析时,常常又需要通过一个或多个键将两个数据集的行连接起来,或者沿着一条轴将多个

数据堆叠到一起,以实现数据合并操作。数据合并操作类似于数据库中运用SQL语句的JOIN连接来实现多表查询。通过数据合并,可以将多个数据集整合到一个数据集中。在pandas中,常用的数据合并函数有merge()、

join()、concat()、append()和combine_first()。8.2.1按键连接数据1.merge()函数在pandas中,通过两个数据集上一个或多个键来合并数据时,可使用merge()函数。merge()函数的格式

和参数说明见教材。示例【例8-5】2.join()函数除了merge()函数外,还可以使用join()函数来实现根据特定的列和索引进行合并数据的操作。join()函数默认是通过index来进行连接,也可以通过设置参数“on”来指定连接的列

。示例代码example8-1.py8.2.1按键连接数据1.concat()函数在pandas中,利用concat()函数可以沿轴将数据进行简单的连接。但concat方法不会去重,如要实现去重的效果,可以使用drop_duplicates方法。按轴向连接数据就是单纯地将两个表拼接,这个过程

也被称作连接(concatenation)、绑定(binding)或堆叠(stacking)。concat()函数的格式和参数说明见教材。示例【例8-6】2.append()函数append()函数是concat()函数的简略形式,但是append()函数只能在axis=0上进行数据合并。app

end()函数语法格式和函数功能说明见教材。示例代码example8-2.py8.2.2沿轴连接数据合并重叠数使用是combine_first()函数,该函数的语法格式:obj1.combine_first(obj2)其中,obj1为函数调用对象的数据集,obj2为函数参数对

象的数据集。该函数的作用是用函数参数对象中的数据为函数调用对象的缺失数据“打补丁”。即填充函数调用对象中的数据缺失值。示例代码example8-3.py。8.2.3合并重叠数据数据抽取,也称为数据拆分,它是通过保留、抽取源数据表中的某些字段、记录的部分信息来形成一些新字段和新记录。1

.字段抽取字段抽取是根据已知列数据的开始和结束位置,抽取出新的列。字段抽取采用slice()函数,该函数的语法格式:Series.str.slice(start=None,stop=None)函数中的参数说明:start:表示字段抽取的开始位置。stop:表示字段抽取的

结束位置。8.3.1字段抽取与拆分2.字段拆分字段拆分是按照固定的字符,拆分已有的字符串。字符分割函数有正序分割列split()函数和逆序分割列rsplit()函数,其中,split()函数的语法格式:Series.str.split(sep=None,n=-1,expand=F

alse)函数中的参数说明见教材。示例【例8-7】8.3.1字段抽取与拆分记录抽取是指根据一定的条件,对数据进行抽取。记录抽取函数:datafram[condition]其中,condition为过滤条件。函数返回值是DataFram。(2)常用的条件类型①比较运算:大于(>)

,小于(<),大于等于(>=),小于等于(<=),不等于(!=)。②范围运算:between(left,right)。③空值匹配:pandas.isnull(column)。④字符匹配:str.contains(patten,na=False),其中

na参数是指空值的处理方式,如为False,不匹配空值。⑤逻辑运算:与(&),或(|),取反(not)。示例【例8-8】8.3.2记录抽取在数据处理时,有时需要对数据的结构进行重排,也称作是重塑(reshape)或者轴向旋转(pivot)。在pandas中

提供了实现重塑的两个函数,即stack()函数和unstuck()函数。常见的数据层次化结构有两种,一种是表格,如图8-3所示,另一种是“花括号”,如图8-4所示。1、stack()函数stack()函数将数据从

”表格结构“变成”花括号结构“,即将其行索引变成列索引。2、unstack()函数unstack()函数将数据从”花括号结构“变成”表格结构“,即要将其中一层的列索引变成行索引。stack()函数和unstuck()函数格式和参数见教材。示例代码example8-4

.py。8.4重塑层次化索引映射就是创建一个映射关系列表,把元素和一个特定的标签或者字符串绑定起来。定义映射关系最好是使用字典。例如:map={‘label1’:’value1’,label2’:’value2’,…}在pandas中提供了利用映射

关系来实现某些操作的函数如下。1、利用replace()函数替换元素例如,创建字典fruits用于指明水果标识和水果名称的映射关系。fruits={101:'orange',102:'apple',103:'banana'}如要将用于存储水果

标识、水果数量和单价的DataFrame对象中的水果标识替换成水果名称,就需要运用replace()函数,通过fruits映射关系来实现元素的替换。replace()函数的基本语法格式和参数见教材。示例【例8-9】8.5.1用映射替换元素在【例8-9】中介绍了利用函数和映射来实现将水果标识

替换成水果名称的方法。但是有时需要保留水果标识,将水果名称添加到数据集中。那么,这时可利用map()函数,通过构建fruits映射关系来实现元素的添加。map()函数的基本语法格式和参数见教材。示例【例8-10】8.5.2用映射添加元素在

数据处理中,有时需要使用映射关系转换轴标签。pandas的rename()函数,是以表示映射关系的字典对象作为参数,替换轴的索引标签。rename()函数的基本语法格式和参数见教材。示例【例8-11】8.5.3重命

名轴索引1.排列利用numpy.random.permutation()函数,可以返回一个序列的随机排列。将此随机排列作为take()函数的参数,通过应用take()函数就可实现按此随机排列来调整Series

对象或DataFrame对象各行的顺序。示例代码example8-6.py。2.随机采样随机抽样是指随机从数据中按照一定的行数或者比例抽取数据。随机抽样的函数:numpy.random.randint(start,end,size)函数中的参数说明见教材。示例代码example8-7

.py。8.6排列与随机抽样1.日期转换日期转换是指将字符型的日期格式的数据转换成为日期型数据的过程。日期转换函数to_datetime()的语法格式:pandas.to_datetime(dateString,format)函数中的参数说明:dat

eString:表示字符型时间列。format:表示时间日期格式,见表8-2。8.7日期转换、日期格式化和日期抽取2、日期格式化日期格式化是将时间日期型数据,按照指定格式,转为字符型数据。日期格式化函数:df_dt.apply(lambdax:datetime.st

rftime(x,format))或df_dt.dt.strftime(format)函数中的参数说明:df_dt:表示数据框中时间列名。format:表示时间日期格式,见表8-2。8.7日期转换、日期格式化和日期抽取3、日期抽取日期抽取是指从日期格式里

面抽取出需要的部分属性。抽取语法:df_dt.dt.property参数说明:df_dt:表示数据框中时间列名。property:表示时间属性,见表8-3示例代码example8-8.py。8.7日期转

换、日期格式化和日期抽取在pandas字符串操作中,常用的字符串处理方法如下。1.字符串拆分split()函数的作用是通过指定分隔符对字符串进行切片,如果参数num有指定值,则仅分隔num个子字符串,其语法格式:

str.split(str="",num=string.count(str))参数说明:str:表示字符串的分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。num:表示分割次数。函数返回值:分割后的字符串列表。示例代码example8-9.py。8.8.1内置的字符串

处理方法在pandas字符串操作中,常用的字符串处理方法如下。2、移除字符串头尾指定的字符strip()函数可用于移除字符串头尾指定的字符(默认为空格)。示例代码example8-10.py。3、字符串连接join()函数可以将字符串、元组、列表中的元素以指定的字符(分隔符)连接生成一个新的

字符串。示例代码example8-11.py8.8.1内置的字符串处理方法在pandas字符串操作中,常用的字符串处理方法如下。4、判断是否是子字符串判断是否是子字符串可以使用in关键字,或者使用find()函数和index()函数

判断一个子字符串的位置。find()函数作用是查找子字符串,若找到返回从0开始的下标值,若找不到返回-1。find()函数返回值是返回子字符串第一次出现的位置的下标值。index()函数作用是在字符串里查找子串第一次出现的位置,类似字符串的find方法,如果查找不到子串,

会抛出异常。示例代码example8-12.py8.8.1内置的字符串处理方法在pandas字符串操作中,常用的字符串处理方法如下。5、判断子字符串出现的次数count()函数可用于统计字符串里某个字符出现的次数,函数的可选参数为字符串搜索的开始与结束位置。函数返回值:返回子字符串在字

符串中出现的次数。示例代码example8-13.py6、替换子字符串replace()函数可将字符串中的old(旧字符串)替换成new(新字符串),如果指定第三个参数max,则替换不超过max次。示例代码example8-14.py8.8.1内置的字符串处理方

法正则表达式是一个特殊的字符序列,使用正则表达能很方便地在文中查找和匹配字符串模式。Python自1.5版本起增加了re模块,re模块使Python语言拥有全部的正则表达式功能。单条正则表达式通常被称作regex,它是根据正则表达式语言编写的字符串。Pyt

hon内置的re模块用于操作regex对象。只有使用importre语句,先导入re模块,才能使用正则表达式。re模块所提供的函数分为三类:模式匹配、替换和拆分。8.8.2正则表达式1、compile()函数

compile()函数用于编译正则表达式,生成一个正则表达式(Pattern)对象,供match()和search()这两个函数使用。2、正则表达式对象正则表达式对象也称为RegexObject对象。(1)正则表达式修饰符正则表达式修饰符—标志(flag

s)参数见表8-48.8.2正则表达式2、正则表达式对象(2)正则表达式模式正则表达式模式是使用特殊的语法来表示一个正则表达式,它的规则:正则表达式模式中的字母和数字匹配相同的字符串。多数字母和数字前加一个反斜杠时会拥有不同的含义。标点符号只有被转义时才匹配自身,否则它们表示特殊的含义。反

斜杠本身需要使用反斜杠转义。由于正则表达式通常都包含反斜杠,如模式元素r'\t',等价于'\\t'。因此,正则表达式中一般都使用r'..'(raw字符串)来定义规则字符串。。正则表达式模式语法中的特殊元素见表8-58

.8.2正则表达式3、re.match()函数re.match()函数尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回none。示例代码example8-15.py。4、re.search()函数re.search()函数扫描

整个字符串并返回第一个成功的匹配。示例代码example8-16.py。注意:re.match()函数只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回None;而re.search()函数匹配

整个字符串,直到找到一个匹配。8.8.2正则表达式5、检索和替换re模块提供了re.sub()函数用于替换字符串中的匹配项。示例代码example8-17.py。6、findall()函数findall()函数可在字符串中找到正则表达式所匹配的

所有子串,并返回一个列表,如果没有找到匹配的,则返回空列表。示例代码example8-18.py。8.8.2正则表达式7、re.finditer()函数finditer()函数与findall()函数类似,可在字符串中找到

正则表达式所匹配的所有子串,并把它们作为一个迭代器返回。示例代码example8-19.py。8、re.split()函数split()函数按照能够匹配的子串将字符串分割后返回列表。示例代码example8-20.py。8.8.2正则表达式1、cat()字符串连接cat()函数可实现

元素级的字符串连接操作,并可指定分隔符。2、split()切分字符串split()函数可根据分隔符或正则表达式对字符串进行拆分。3.get()获取指定位置的字符串get()函数可获取各元素的第i个字符。示例代码example8-21.py。除了cat()、split(

)和get()函数外,Series类的str自带的其它函数,即矢量化的字符串函数见表8-6,其函数语法格式是Series.str.函数名(参数)。8.8.3矢量化的字符串函数项目实践项目描述根据美国农业部(USDA)制作的一份关于食物营养

信息的数据库,该数据的JSON数据结构中除了包含了每种食物的“id”、“description”、“tags”、“manufacturer”、“group”属性外,还包含了“portions”和“nutrients”这两个列表,其中“nutrients”列表中包含了营养成分和份量。要求

对USDA食物营养信息的JSON数据完成食物类别的分布情况和全部食物营养成分的数据分析。本章小结本章首先重点介绍了利用pandas实现对重复值、缺失值和异常值的数据清洗方法,还介绍了按键连接数据、沿轴连接数据和

合并重叠数据的数据合并方法,及字段拆分与抽取和记录抽取方法。同时,还介绍了重塑层次化索引,利用映射实现数据转换,数据排列与随机抽样,日期转换、日期格式化和日期抽取,字符串处理方法等。谢谢!

小橙橙
小橙橙
文档分享,欢迎浏览!
  • 文档 25747
  • 被下载 7
  • 被收藏 0
相关资源
广告代码123
若发现您的权益受到侵害,请立即联系客服,我们会尽快为您处理。侵权客服QQ:395972555 (支持时间:9:00-21:00) 公众号
Powered by 太赞文库
×
确认删除?