python数据分析基础教程(第2版)教案 (第8章)用pandas 进行数据预处理.doc
《Python数据分析基础教程(第2版)》
教
案
《Python数据分析基础教程(第2版)》人民邮电出版社 作者:郑丹青
PAGE1
课程基本信息
课程名称
Python数据分析基础教程
授课班级
授课课题名
用pandas进行数据预处理—
数据清洗
计划课时
4课时
授课时间
第周第课时
课型
教学做一体化
教学目标
了解数据清洗作用。
掌握重复值的处理方法。
掌握缺失值的处理方法。
掌握异常值的处理方法。
教学重点
重复值的处理方法。
缺失值的处理方法
教学难点
异常值的处理方法
教法与学法
教法:案例教学法;
学法:探究学习、小组合作学习。
教学过程
【任务引入】
分组讨论
在数据分析前,为什么要进行数据清洗?数据清洗作用是什么?
【新课讲授】
任务一:重复值的处理
知识点讲解
数据清洗是指发现并纠正数据文件中可识别的错误,如移除重复数据、处理缺失值、检测和过滤异常值、检查数据一致性等。通过数据清洗不仅要使通过清洗后的数据变的可用,而且要使数据变的更加适合进行后续的数据分析工作。
从数据采集所获得的原始数据集中,往往会存在着许多重复值。所谓重复值是指在数据结构中所有列的内容都相同,即行重复。而处理重复数据是数据分析中经常要面对的问题之一
pandas提供了duplicated()函数和drop_duplicates()函数来标记及删除重复值。
1、duplicated()函数
duplicated()函数用于标记Series中的值、DataFrame中的记录行是否是重复,重复则为True,不重复则为False。函数的语法格式如下。
pandas.DataFrame.duplicated(subset=None,keep=first)
或:
pandas.Series.duplicated(keep=first‘)
该函数中的参数说明如下。
subset:string类型或序列,用于识别重复的列标签或列标签序列,默认为列标签,默认值为None。
keep:特定string。frist表示除了第一次出现外,其余相同的重复值标记为True;last除了最后一次出现外,其余相同的重复值标记为True;false将所有重复值标记为True。默认值为frist。
2、drop_duplicates()函数
drop_duplicates()函数用于删除Series、DataFrame中的重复值,并返回删除重复值后的结果。该函数的语法格式如下。
pandas.DataFrame.drop_duplicates(subset=None,keep=first,
inplace=False)
或
pandas.Series.drop_duplicates(keep=first,inplace=False)
该函数中的参数说明如下。
subset:string类型或序列。仅考虑用于标识重复值的某些列,默认情况下使用所有列,默认值为None。
keep:特定string类型。frist删除重复值并保留第一次出现的项;last除了最后一项外,删除重复值;false删除所有重复值;默认值为frist。
inplace:boolean类型。True表示直接修改原对象,False表示创建一个副本,修改副本,原对象不变,默认值为False。
案例讲解
【例8-1】有一个手机评论数据文件Mobile.csv,该文件的数据列包括手机品牌、价格和评分,现要求去除该文件中的重复值。
学生练习,教师对疑难问题进行解答。
任务二:缺失值的处理
知识点讲解
在Python中,pandas使用浮点值NaN表示浮点数和非浮点数组中的缺失值,同时Python内置的None值也会被当作是缺失值。在处理缺失值之前,首先要判断缺失值是否存在,然后对缺失值进行删除、填充或者不处理的操作。
1、判断缺失值的函数
(1)isnull()函数:用于检查缺失值的对象,如果有缺失值则返回True,否则返回False。
(2)notnull()函数:用于检查不为缺失值的对象;如果有缺失值则返回False,否则返回True。
通过isnull()函数和sum()函数可以获得Series和DataFrame中缺失值的数量
2、处理缺失值的方法
(1)删除含有缺失值的记录
在数据分析中,如果数据集的样本很多,并且在删除含有缺失值的记录后不会影响数据分析结果的客观性和准确性,一般是使用dropna()函数直接将含有缺失值