Python数据分析基础第8章用pandas 进行数据预处理
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
8.1.3 异常值的处理
2. 异常值的处理方法 常用的异常值处理方法有以下4种。 (1)删除含有异常值的记录。 (2)将异常值视为缺失值,按照缺失值的处理方法来处理。 (3)用平均值来修正异常值。 (4)对异常值不处理。 示例【例8-4】
8.2.1 按键连接数据
在数据采集时,往往会将数据分散存储于不同的数据集中。而在数据分 析时,常常又需要通过一个或多个键将两个数据集的行连接起来,或者沿着 一条轴将多个数据堆叠到一起,以实现数据合并操作。
8.1.3 异常值的处理
1. 判别数据集中异常值方法 (3)3δ原则 3δ原则是指当数据服从正态分布时,根据正态分布的定义可知,距离 平均值3δ之外的概率为 P(|x-μ|>3δ) <= 0.003 ,这是属于极小的概率事件, 因此,当样本距离平均值大于3δ时,则认定该样本为异常值。 (4)箱型图分析 箱型图提供了一个识别异常值的标准,即大于或小于箱型图设定的上下 界的数值即为异常值。
1、duplicated()函数 duplicated()函数用于标记Series中的值、DataFrame中的记录行是否是重 复,重复为True,不重复为False。函数语法格式及参数说明见教材。 2、drop_duplicates()函数 drop_duplicates()函数用于删除Series、DataFrame中重复记录,并返回删 除重复后的结果。函数语法格式及参数说明见教材。 示例【例8-1】
8.1.3 异常值的处理
所谓异常值,就是在数据集中存在不合理的值,又称离群点。例如年龄 为负数,成绩大于100或小于零,商品评分超出5分或商品日销售量远远超过 年销售量等,都属于异常值的范围。
1. 判别数据集中异常值方法 (1)散点图分析 (2)简单统计分析
例如,年龄属性值的区间规定为[0:150],如果数据集样本中的年龄值不 在该区间范围内,则表示该样本的年龄属性属于异常值。
8.2.3 合并重叠数据
合并重叠数使用是combine_first()函数,该函数的语法格式: obj1.combine_first(obj2)
8.1.2 缺失值的处理
2、处理缺失值的方法 (1)删除含有缺失值的记录
在数据分析中,如果数据集的样本很大,并且在删除含有缺失值的记录 后,不会影响分析结果的客观性和准确性时,一般是使用dropna()函数直接 将空值或缺失值的数据删除。 dropna()函数说明见教材,应用示例【例8-2】。
(2)数据插补法 在数据分析中,如果数据集的样本比较少或者由于删除含有缺失值的记 录会影响到数据分析结果的客观性和准确性时,就需要根据数据插补的方法 来选择填充值,然后再使用fillna()函数对空值或缺失值进行填充。 fillna()函 数说明、常用数据插补方法见表8-1见教材,应用示例【例8-3】
8.2.2 沿轴连接数据
1. concat()函数 在pandas中,利用concat()函数可以沿轴将数据进行简单的连接。但 concat方法不会去重,如要实现去重的效果,可以使用drop_duplicates方法。 按轴向连接数据就是单纯地将两个表拼接,这个过程也被称作连接 (concatenation)、绑定(binding)或堆叠(stacking)。 concat() 函数的格式和参数说明见教材。 示例【例8-6】 2. append()函数 append()函数是concat()函数的简略形式,但是append()函数只能在 axis=0上进行数据合并。append()函数语法格式和函数功能说明见教材。 示例代码 example8-2.py
数据合并操作类似于数据库中运用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.py
从数据采集所获得的原始数据集中,往往会存在着许多重复数据。所谓 重复数据是指在数据结构中所有列的内容都相同,即行重复。而处理重复数 据是数据分析中经常要面对的问题之一。
8.1.1重复值的处理
pandas提供了duplicated()和drop_duplicates()函数可用于标记及删除重复 数据。
8.1.2 缺失值的处理
在Python中,pandas使用浮点值NaN表示浮点数和非浮点数组中的缺失 值,同时Python内置None值也会被当作是缺失值。在处理缺失值之前,首先 要判断缺失值是否存在,然后再对缺失值进行删除、填充或者不处理的操作。
1、判断缺失值的函数 (1)isnull()函数:用于检查空值或缺失值的对象;如果有空值或缺失值 则返回True,否则返回False。 (2)notnull()函数:用于检查不为空值或缺失值的对象;如果有空值或 缺失值则返回False,否则返回True。 通过isnull()函数和sum()函数可以获得Series和DataFrame中缺失值的数量
第8章 用pandas进行数据预处理
学习目标: 掌握重复值、缺失值和异常值的处理。 掌握数据合并和数据抽取。 掌握重塑层次化索引、映射与数据转换。 掌握排列与随机抽样。 掌握日期和字符串处理。
8.1.1 重复值的处理
数据清洗是发现并纠正数据文件中可识别的错误,如移除重复数据,处 理缺失值和空格值,检测和过滤异常值,并检查数据一致性等。通过数据清 洗不仅要使通过清洗后的数据变的可用,而且还要使数据变的更加适合进行 后续的数据分析工作。