版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第6章数据处理与数据分析
本章内容6.1数据处理概念6.2Pandas数据清理6.3Pandas数据集成6.4Pandas数据变换与离散化6.5Pandas数据分析6.1数据处理概念现实世界的数据库极易受噪声、缺失值和不一致数据的侵扰。为了满足应用要求,得到高质量的数据,提高数据的准确性、完整性、一致性、时效性和可信性,需要对数据进行相应的处理,包括数据清理、数据集成、数据变换与数据离散化等步骤。数据清理主要清除数据中的噪声,纠正不一致。数据集成将数据由多个数据源进行合并。数据变换(例如规范化)可以用来把数据压缩到较小的区间,如0到1之间。6.1数据处理概念6.1.1数据清理现实世界的数据一般是不完整的、有噪声的和不一致的。数据清理试图填充缺失的值,光滑噪声和识别或删除离群点,并纠正数据中的不一致来“清理”数据。1.缺失值处理缺失值的可用处理方法有以下几种:(1)删除记录。(2)人工填写缺失值。(3)使用一个全局常量填充缺失值。(4)使用属性的中心度量(如均值或中位数)填充缺失值。(5)使用与属性缺失的记录属同一类的所有样本的属性均值或中位数。(6)使用最可能的值填充缺失值。6.1.1数据清理2.噪声数据与离群点噪声是被测量变量的随机误差(一般指错误的数据)。离群点是数据集中包含一些数据对象,他们与数据的一般行为或模型不一致(正常值,但偏离大多数数据)。图6-1系统用户年龄的分析6.1.1数据清理2.噪声数据与离群点给定一个数值属性,可以采用下面的数据光滑技术“光滑”数据,去掉噪声。(1)分箱分箱方法通过考察数据的“近邻”(即周围的值)来光滑有序数据值。用箱均值光滑:箱中每一个值被箱中的平均值替换。用箱边界光滑:箱中的最大值和最小值同样被视为边界。箱中的每一个值被最近的边界值替换。用箱中位数光滑:箱中的每一个值被箱中的中位数替换。
箱均值光滑
箱边界光滑
箱中位数光滑6.1.1数据清理2.噪声数据与离群点(2)回归回归(regression)用一个函数拟合数据来光滑数据。线性回归涉及找出拟合两个属性(或变量)的“最佳”直线,使得一个属性能够预测另一个。离群点分析可以通过如聚类来检测离群点。聚类将类似的值组织成群或“簇”。直观地,落在簇集合之外的值被视为离群点。图6-3线性回归拟合图6-4聚类出3个数据簇6.1.1数据清理3.不一致数据对于有些事务,所记录的数据可能存在不一致。有些数据不一致可以根据其他材料上信息人工地加以更正,也可以用纠正不一致数据的程序工具来检测违反限制的数据。例如,知道属性间的函数依赖,可以查找违反函数依赖的值。6.1.2数据集成在实际应用中,经常会遇到来自不同数据源的同类数据,且在用于分析之前需要进行合并操作。实施这种合并操作的步骤称数据集成。有效的数据集成过程有助于减少合并后的数据冲突,降低数据冗余程度等。数据集成需要解决的问题有:(1)属性匹配确定不同数据源中数据属性间的对应关系。例如,对用户id的表达形式,销售商A使用字符串类型“customer_id”;销售商B使用整数类型“customer_id_number”,在进行集成之前,需要先对不同的表达方式进行识别和对应。(2)冗余去除数据集成后产生的冗余包括两方面:数据记录的冗余,因数据属性间的推导关系而造成数据属性冗余。(3)数据冲突检测与处理来自不同数据源的数据记录在集成时因某种属性或约束上的冲突,导致集成过程无法进行。6.1.3数据变换与数据离散化1.数据变换策略概述(1)光滑:去掉数据中的噪音。这种技术包括分箱、聚类和回归。(2)属性构造(或特征构造):可以由给定的属性构造新的属性并添加到属性集中,以帮助挖掘过程。(3)聚集:对数据进行汇总和聚集。例如,可以聚集日销售数据,计算月和年销售量。通常这一步用来为多个抽象层的数据分析构造数据立方体。(4)规范化:把属性数据按比例缩放,使之落入一个特定的小区间,如-1.0到1.0或0.0到1.0。(5)离散化:数值属性(例如,年龄)的原始值用区间标签(例如0到10,11到20等)或概念标签(例如,youth,adult,senior)替换。这些标签可以递归地组织成更高层概念,导致数值属性的概念分层。(6)由标称数据产生概念分层:属性如street,可以泛化到较高的概念层,如city或country。6.1.3数据变换与数据离散化2.通过规范化变换数据令A是数值属性,具有n个值v1,v2,…,vn。(1)最小-最大规范化是对原始数据进行线性变换。假定maxA和minA分别为属性A的最大和最小值,把A的值vi映射到区间[new_minA,new_maxA]中的vi'。最小-最大规范化通过计算公式:(2)z-score规范化(或零-均值规范化),基于A的平均值和标准差规范化。A的值vi被规范化为vi',由下式计算,其中avgA和δA分别为属性A的平均值和标准差。6.1.3数据变换与数据离散化3.通过分箱离散化分箱是一种基于指定的箱个数的自顶向下的分裂技术。分箱并不使用分类信息,是一种非监督的离散化技术。它对用户指定的箱个数很敏感,也容易受离群点的影响。4.通过直方图分析离散化直方图分析也是一种非监督离散化技术,它也不使用分类信息。直方图把属性A的值划分成不相交的区间,称作桶或箱。桶安放在水平轴上,而桶的高度(和面积)是该桶所代表值的出现频率。5.通过聚类、决策树离散化聚类通过将属性A的值划分成簇或组,主要考虑A的分布以及数据点的邻近性。为分类生成决策树的技术可以用来离散化。主要思想是选择划分点使得一个给定的结果分区包含尽可能多的同类记录。6.2Pandas数据清理Pandas数据清理包括处理缺失数据以及清除无意义的数据,如删除原始数据集中的无关数据、重复数据,平滑噪声数据,处理异常值。6.2.1处理缺失值1.查找数据中的缺失值表6-1成绩单score.xlsx学号姓名班级出生日期年龄高数英语计算机总分等级50101田晴计算机0512001-08-19
867187
50102杨庆红计算机0512002-10-08
617570
50201王海茹计算机0522004-12-16
作弊8881
50202陈晓英计算机0522003-06-25
65缺考66
50103李秋兰计算机0512001-07-06
907893
50104周磊计算机0512002-05-10
566886
50203吴涛计算机0522001-08-18
878182
50204赵文敏计算机0522002-09-17
809391
6.2.1处理缺失值1.查找数据中的缺失值缺失值True:缺失数据False:有数据默认查看5行isna()方法查找DataFrame对象或Series对象中的缺失值6.2.1处理缺失值2.删除数据中的缺失值DataFrame.dropna(axis=0,how='any',subset=None,inplace=False)参数说明:axis:默认为0,表示逢空值删除整行,axis=1表示逢空值去掉整列。how:默认为'any',如果一行(或一列)里任何一个数据出现NaN就去掉整行(整列);如果设置how='all',一行(或一列)都是NaN才删掉整行(整列)。subset:设置要检查缺失值的列。如果是多个列,可以使用列名的列表list作为参数。inplace:默认False,dropna()方法返回一个新的DataFrame,不会修改源数据。如果参数为True,修改源数据DataFrame。例如:df.dropna(subset=['总分','等级'])#删除df中'总分'和'等级'2列数据有缺失的行6.2.1处理缺失值3.填充数据中的缺失值(1)固定值填充df.fillna(value=None,method=None,axis=None,inplace=False,**kwargs)主要参数说明:value:填充的值,可以是一个常量或者字典等。如果是字典则可以指定某些列填充的具体值。method:填充的方法,backfill和bfill代表用缺失值后一个数据值替代NaN,ffill和pad代表用缺失值前一个数据值替代NaN。例如:df.fillna(value='?')#或者df.fillna('?')6.2.1处理缺失值3.填充数据中的缺失值(1)固定值填充(2)临近值填充6.2.1处理缺失值3.填充数据中的缺失值(3)描述性统计量填充6.2.2处理重复值1.查找重复值使用df.duplicated()方法会返回一个Series对象,找出所有重复值。重复为True,不重复为False。6.2.2处理重复值2.删除重复值使用df.drop_duplicates()方法直接删除DataFrame对象中重复出现的整行数据。6.2.3处理格式错误以下实例格式化日期数据。to_datetime函数将多种日期形式转换为标准日期格式6.2.4处理错误数据
以下实例会替换错误年龄的数据。
设置条件语句,将age大于120的设置为120。
将错误数据的行删除。将age大于120的行删除。6.2.5处理异常值异常值是指数据中个别数值明显偏离其余数值的数据,也称为离群点。检测异常值就是监测数据中是否有录入错误以及是否有不合理的数据。3σ原则[拉依达准则]该法则是假设一组检验数据只有随机误差,对原始数据进行计算处理得到标准差,按照一定的概率确定一个区间,认为误差超过这个区间就属于异常值。3σ原则仅适用于服从正态分布或者近似正态分布的数据。μ-3σ<x<μ+3σ,为正常区间的数据,此区间的概率值为0.9973。以下例子使用Z-score标准化法后得到的数据值超过阈值标为异常。6.3Pandas数据集成6.3.1SQL合并/连接Pandas提供了一个merge()函数,实现DataFrame对象之间所有标准数据库连接操作。merge(left,right,how='inner',on=None,left_on=None,right_on=None,left_index=False,right_index=False,sort=True)主要参数含义如下:left——左DataFrame对象。right——右DataFrame对象。on——列(名称)连接,必须在左和右DataFrame对象中存在。how——它是left,right,outer以及inner之中的一个,默认为inner。6.3.1SQL合并/连接(1)'id'列用作键合并两个数据框。(2)多列用作键合并两个数据框。6.3.1SQL合并/连接(3)使用“how”参数合并两个数据框。left连接:rs=pd.merge(left,right,on='subject_id',how='left')left连接right连接outer连接inner连接默认inner连接6.3.2字段合并字段合并是指将同一个数据框中的不同列进行合并,形成新的列。X=x1+x2+…x1:数据列1,x2:数据列2。返回值:数据框。注意:如果某一列是非str类型的数据,需要用map(str)或者astype(str)将那一列数据类型做转换。6.3.3记录合并记录合并是指两个数据框合并成一个数据框,也就是在一个数据框中追加另一个数据框的数据记录。1.concatpd.concat(objs,axis=0,join='outer',ignore_index=False,keys=None,...])objs:需要连接的对象,[dataFrame1,dataFrame2,...],需要将合并的数据框用列表表示。axis:axis=0表示拼接方式是上下堆叠,当axis=1表示左右拼接。join:控制外连接还是内连接,join='outer'表示外连接,保留两个数据框表中的所有信息;join="inner"表示内连接,拼接结果只保留两个数据框表共有的信息。keys:可以给每个需要合并的dataFrame数据框一个标签。6.3.3记录合并1.concat(1)相同字段的数据框表首尾相接(即上下方向)默认axis=0,上下拼接6.3.3记录合并1.concat(2)横向拼接(即左右方向)axis=1,左右拼接默认join='outer'外连接axis=1,左右拼接join='inner'内连接6.3.3记录合并2.appendappend主要用于追加数据,格式如下:df.append(other,ignore_index:'bool'=False,verify_integrity:'bool'=False,sort:'bool'=False)主要参数含义如下:other:用于追加的数据,可以是DataFrame或Series或列表。ignore_index:是否保留原有的索引。6.3.3记录合并2.append(1)append追加数据框(2)将Series和字典数据作为DataFrame的新一行插入6.4Pandas数据变换与离散化6.4.1简单函数变换对数据开方、平方、取对数、倒数、差分、指数等,为后续分析提供想要的数据和方便分析。由于“累计评价”的值太大,新增一列对“累计评价”取对数处理;同时插入一列,计算“优惠力度”。6.4.2数据标准化数据标准化实际是将数据按比例缩放,使之落入到特定区间,一般我们使用0-1标准化。数据标准化是为了消除数据的量纲影响,为后续许多算法分析提供必要条件。1.Min-Max标准化Min-Max标准化就是最小-最大规范化,又称离差标准化,对原始数据的线性变换,使结果映射到区间[0,1]且无量纲。计算公式:X*=(x-min)/(max-min)6.4.2数据标准化2.Z-score标准化法Z-score标准化根据原始数据的均值(Mean)和标准差(StandardDeviation),进行数据的标准。经过处理的数据符合标准正态分布,即均值为0,标准差为1。Z-score标准化公式为:X*=(x-u)/σ
其中u表示所有样本数据的均值,σ表示所有样本数据的标准差。6.4.3数据离散化处理连续值经常需要离散化或者分箱,方便数据的展示和理解,以及结果的可视化。等距分箱等频分箱(分位数分箱)6.5Pandas数据分析6.5.1描述性分析1.集中趋势表示数据集中趋势的指标有:平均值、中位数、众数、第一四分位数和第三四分位数。6.5.1描述性分析2.离散程度表示数据离散程度的有:方差,标准差,极差,四分位间距。6.5.1描述性分析3.分布形态峰度:是描述某变量所有取值分布形态陡缓程度的统计量,简单来说就是数据分布顶的尖锐程度。峰度>0峰度=0峰度<0偏度:统计数据分布偏斜方向和程度的度量,通过对偏度系数的测量,判定数据分布的不对称程度以及方向。skew():数据分布的偏度kurt():数据分布的峰度6.5.2分布分析分布分析法又称直方图法。将搜集到的数据进行分组整理,绘制成频数分布直方图,用以描述分布状态的一种分析方法。例如日常成绩分析中,统计各分数段人数(不及格人数,60~80,80~90,90分以上人数)了解学生学习情况,就是分布分析。分布分析应用场景:发现用户分布规律,优化产品和运营策略。锁定核心用户群,实施精细化运营。去除极值影响,数据更接近整体真实表现。分布分析一般按照以下步骤执行:(1)找到数据中的最大值和最小值。(2)决定组距与组数。(3)决定分点
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2021国控私募基金秋招笔试预测题及答案全解
- 2020宁德时代动力电池岗面试核心考点及应答答案
- 2020东航物流零经验转行面试专属题库及适配答案
- 2025年潍坊教育类优才计划笔试冲刺必背知识点及真题答案
- 2022北理工MBA管理经济学案例分析专项试题及标准答案
- 2020年HJ1237业务培训全考点试题及详细答案解析
- 2025编剧基础期末考必刷题题库及完整答案 刷3遍稳拿年级前10
- 2026年沟通能力自我评价测试题及答案
- 新能源行业保护协议书
- 肺癌患者化疗管理方案
- 2026中盐东兴盐化股份有限公司招聘17人备考题库带答案详解(a卷)
- 2026年马鞍山安徽横望控股集团有限公司公开招聘工作人员考试参考试题及答案解析
- 四川省绵阳市梓潼县2026届九年级中考一模语文试卷
- 2026年上海铁路局校园招聘笔试参考题库及答案解析
- 安防监控系统维保表格
- 人教统编版六年级语文下册第二单元《习作:写作品梗概》公开课教学课件
- 2026年3月山东济南轨道交通集团运营有限公司社会招聘备考题库附参考答案详解(典型题)
- 山东省中小学生欺凌调查认定和复查复核程序指引解读
- 2026内蒙古环投集团社会招聘17人笔试备考试题及答案解析
- 2026年高考物理二轮复习:专题16 热学(复习讲义)(全国适用)(原卷版)
- TSG 08-2026 特种设备使用管理规则
评论
0/150
提交评论