大数据治理(高级) 课件 西财 实训项目1、2:期货数据预处理、电影数据预处理_第1页
大数据治理(高级) 课件 西财 实训项目1、2:期货数据预处理、电影数据预处理_第2页
大数据治理(高级) 课件 西财 实训项目1、2:期货数据预处理、电影数据预处理_第3页
大数据治理(高级) 课件 西财 实训项目1、2:期货数据预处理、电影数据预处理_第4页
大数据治理(高级) 课件 西财 实训项目1、2:期货数据预处理、电影数据预处理_第5页
已阅读5页,还剩83页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实训1期货交易数据预处理1知识点数据预处理概念数据读取与写入数据索引与切片数据清洗描述性统计方法2实训目标了解数据预处理的概念与流程;掌握数据加载与写入的方法;掌握数据对象的索引和切片操作;掌握数据清洗的一般方法;理解常用统计指标的含义;3知识点数据预处理概念数据读取与写入数据索引与切片数据清洗描述性统计方法4数据预处理概念数据预处理(datapreprocessing)是指在进行数据分析、挖掘和可视化前对数据进行的一些必要处理方法。预处理数据清洗数据集成数据规约数据变换5数据预处理概念数据清洗数据集成数据规约数据变换发现并纠正数据文件中可识别错误,清理“脏数据”。将不同来源、格式、结构的数据在逻辑或物理上有机集中。尽可能保持数据原貌的前提下,最大限度地精简数据量。对数据的数值、类型、单位进行转换以保证数据可用性。6数据预处理概念准确性完整性一致性时效性有效性数据质量7知识点数据预处理概念数据读取与写入数据索引与切片数据清洗描述性统计方法8数据读取与写入文件是信息的载体,在将分散的数据保存在文件中后,我们需要通过适当的方法对其进行读取和写入。以下介绍Pandas从多种存储媒介读取以及将不同的数据结构写入不同格式文件的方法。文本文件表格文件数据库9数据读取与写入CSV文件是一种纯文本文件,可以使用任何文本编辑器进行编辑,它支持追加模式,节省内存开销。10数据读取与写入read_csv()方法的作用是将CSV文件的数据读取出来,转换成DataFrame对象展示。read_csv(filepath_or_buffer,sep=',',delimiter=None,header='infer',names=None,index_col=None,usecols=None,prefix=None,...)filepath_or_buffer:文件路径sep:指定使用的分隔符,默认用“,”分隔。header:指定第一行用来作为列名,前提是names=Nonenames:指定列名列表。当names没被赋值时,header会变成0,即选取数据文件的第一行作为列名。11数据读取与写入to_csv()方法的功能是将数据写入到CSV文件中。to_csv(path_or_buf=None,sep=',',na_rep='',float_format=None,columns=None,header=True,index=True,index_label=None,mode='w‘,...)path_or_buf:文件路径。index:默认为True,若设为False,则将不会显示索引。sep:分隔符,默认用“,”隔开。12数据读取与写入Excel文件也是比较常见的存储数据的文件,它里面均是以二维表格的形式显示的,可以对数据进行统计、分析等操作。Excel的文件扩展名有.xls和.xlsx两种。13数据读取与写入read_excel(io,sheet_name=0,header=0,names=None,index_col=None,**kwds)io:表示路径对象。sheet_name:指定要读取的工作表,如:“Sheet1”。header:用于解析DataFrame的列标签。names:指定列名列表。to_excel(excel_writer,sheet_name='Sheet1',na_rep='',float_format=None,columns=None,header=True,index=True,...)excel_writer:表示读取的文件路径。index:表示是否写行索引,默认为True。14数据读取与写入大多数情况下,海量的数据是使用数据库进行存储的,这主要是依赖于数据库的数据结构化、数据共享性、独立性等特点。Pandas

支持Mysql、Oracle、SQLite等主流数据库的读写操作。15数据读取与写入以Mysql为例,read_sql()函数既可以读取整张数据表,又可以执行SQL语句。pandas.read_sql(sql,con,index_col=None,coerce_float=True,params=None,parse_dates=None,columns=None,chunksize=None)sql:表示被执行的SQL语句。con:接收数据库连接,表示数据库的连接信息。columns:从SQL表中选择列名列表。16数据读取与写入to_sql()方法的功能是将Series或DataFrame对象以数据表的形式写入到数据库中。pandas.to_sql(name,con,schema=None,if_exists='fail‘,index=True,index_label=None,chunksize=None,dtype=None)name:表示数据库表的名称。con:表示数据库的连接信息。if_exists:可以取值为fail、replace或append,默认为’fail’。17数据读取与写入注意:通过create_engine()函数创建连接时,需要指定格式如下:'数据库类型+数据库驱动名称://用户名:密码@机器地址:端口号/数据库名’。如:’mysql+mysqlconnector://root:123456@127.0.0.1:3306/info’18知识点数据预处理概念数据读取与写入数据索引与切片数据清洗描述性统计方法19数据索引与切片pandas作为常用的数据分析库,提供了两个重要的数据结构:Series和DataFrame其中Series是由索引和数据组成的一维数据结构,DataFrame是由行、列索引和数据组成的二维数据结构。SeriesDataFrame20数据索引与切片Series是pandas提供的重要数据结构对象之一,类似于一维数组,主要由一组数据和与之相关的索引两部分构成,其索引和数据只能在某个固定维度上延伸。21数据索引与切片pandas.Series(data=None,index=None,dtype=None,name=None,fastpath=False)Series构造函数:data:表示传入的数据,可以是列表或字典。index:表示索引,唯一且与数据长度相等,默认会自动创建一个从0~N的整数索引。22010203政府需求岷山集团需求同盟商家群众数据索引与切片importpandasaspdpd.Series([1,2,3,4,5])pd.Series([1,2,3,4,5],index=['a','b','c','d','e'])pd.Series({2001:17.8,2002:20.1,2003:16.5})构造Series的方式:235MIN010203政府需求岷山集团需求同盟商家群众数据索引与切片Series的索引:

Series的切片:

240103政府需求岷山集团需求同盟商家群众数据索引与切片Series的索引:Series的切片:

ser_obj[2]ser_obj['b']注意:基于标签的切片是闭区间

基于位置的切片是左闭右开的区间255MIN010203政府需求岷山集团需求同盟商家数据索引与切片DataFrame也是pandas提供的重要数据结构对象之一,类似于二维数组或表格对象,主要由多组数据和与之相关的索引两部分构成,其索引和数据可以在两个固定维度上延伸。注意:DataFrame的索引不仅有行索引,还有列索引,数据可以有多列。且每一行或列单独取出均为Serirs类型。26010203政府需求岷山集团需求同盟商家群众数据索引与切片pandas.DataFrame(data=None,index=None,columns=None,dtype=None,copy=False

)DataFrame构造函数:data:表示传入的数据,可以是嵌套列表、二维数组或列表字典等数据类型。index:表示行标签。若不设置该参数,则默认会自动创建一个从0~N的整数索引。columns:列标签。27010203政府需求岷山集团需求同盟商家群众数据索引与切片importpandasaspdpd.DataFrame([[1,2,3],[2,4,6],[3,6,9]],index=['a','b','c'],columns=['A','B','C'])pd.DataFrame({'A':[1,2,3],'B':[2,3,4],'C':[3,4,5]})构造DataFrame的方式:285MIN010203政府需求岷山集团需求同盟商家群众数据索引与切片DataFrame的行索引:

DataFrame的列索引:

29010203岷山集团需求同盟商家群众数据索引与切片DataFrame的行索引:

DataFrame的列索引:

305MIN010203政府需求岷山集团需求同盟商家群众数据索引与切片DataFrame的行切片:

DataFrame的列切片:

3101岷山集团需求同盟商家群众数据索引与切片DataFrame的行切片:

DataFrame的列切片:

325MIN注意:基于标签的切片是闭区间

基于位置的切片是左闭右开的区间知识点数据预处理概念数据读取与写入数据索引与切片数据清洗描述性统计方法33010203政府需求岷山集团需求同盟商家群众数据清洗数据清洗即发现并纠正数据文件中可识别错误,清理影响数据质量的“脏数据”。脏数据在这里指的是对数据分析没有实际意义、格式非法、不在指定范围内的数据。空缺值重复值异常值脏数据34010203政府需求岷山集团需求同盟商家群众数据清洗空缺值处理Python中一般用None和NaN表示空缺值,在numpy和pandas模块中许多函数或方法将NaN视作“正常的”空缺值,而none则会被视为非法类型或字符串。None(NoneType)NaN(float)35010203政府需求岷山集团需求同盟商家群众数据清洗空缺值处理Pandas中用于判断数据集中是否存在空缺值有如下方法。pandas.isnull(obj)isnull()函数会返回一个布尔类型的值,如果返回的结果为True,则说明有空缺值,否则为False。pandas.notnull(obj)notnull()也可以判断数据中是否存在空值或缺失值,不同之处在于,前者发现数据中有空值或缺失值时返回False,后者返回的是True。36010203政府需求岷山集团需求同盟商家数据清洗importpandasaspdimportnumpyasnpser_obj=pd.Series([1,None,np.NAN])pd.isnull(ser_obj)pd.notnull(ser_obj)空缺值处理375MIN0203政府需求岷山集团需求同盟商家群众数据清洗空缺值处理dropna()方法的作用是过滤含有空缺值的行或列。dropna(axis=0,how='any',thresh=None,subset=None,inplace=False)axis:确定过滤行或列。how:确定过滤的标准。thresh:表示有效数据量的最小要求。若传入了2,则是要求该行或该列至少有两个非NaN值时将其保留380203政府需求岷山集团需求同盟商家群众数据清洗空缺值处理fillna()方法的作用是对空缺值进行填充。fillna(value=None,method=None,axis=None,inplace=False,limit=None,**kwargs)value:指定固定值填充至空缺值位置。method:表示填充方式,默认值为None,’ffill’:前项填充,’bfill’:后项填充。limit:可以连续填充的最大数量,默认None。39010203政府需求岷山集团需求同盟商家数据清洗importpandasaspdimportnumpyasnpdf_obj=pd.DataFrame([[1,2,np.NAN], [2,np.NAN,4],[np.NaN,4,np.NAN]])df_obj.dropna()df_obj.dropna(axis=1,thresh=2)空缺值处理406MIN010203政府需求岷山集团需求同盟商家数据清洗importpandasaspdimportnumpyasnpdf_obj=pd.DataFrame([[1,2,np.NAN], [2,np.NAN,4],[np.NaN,4,np.NAN]])df_obj.fillna(value=0)df_obj.fillna(method='ffill')空缺值处理416MIN010203政府需求岷山集团需求同盟商家数据清洗重复值处理当数据中出现了重复值,需要甄别该重复值是“正常的”还是异常的。大多数情况下需要进行删除。Pandas提供了两个函数专门用来处理数据中的重复值,分别为duplicated()和drop_duplicates()方法。42010203政府需求岷山集团需求同盟商家群众数据清洗重复值处理duplicated()方法的语法格式如下:duplicated(subset=None,keep='first')drop_duplicates()方法的语法格式如下:drop_duplicates(subset=None,keep='first',inplace=False)以上函数中,subset用于识别重复的列标签或列标签序列,默认识别所有的列标签。Keep用于删除重复项并保留第一次出现的项,取值可以为first、last或False。43010203政府需求岷山集团需求同盟商家数据清洗importpandasaspdimportnumpyasnpdf_obj=pd.DataFrame([[1,2,3],[1,2,3],[2,3,4]])df_obj.duplicated()df_obj.drop_duplicates()重复值处理445MIN010203政府需求岷山集团需求同盟商家群众数据清洗异常值处理异常值是指样本中的个别值,其数值明显偏离它所属样本的其余观测值,这些数值是不合理的或错误的。通常来说,要想确认一组数据中是否有异常值,则常用的检测方法有3σ原则和箱形图。45010203政府需求岷山集团需求同盟商家群众数据清洗异常值处理3σ原则,指假设一组检测数据只含有随机误差,对其进行计算处理得到标准偏差,按一定概率确定一个区间,凡是超过这个区间的误差都是粗大误差。在正态分布概率公式中,σ表示标准差,μ表示平均数:

46010203政府需求岷山集团需求同盟商家数据清洗异常值处理箱形图是一种用作显示一组数据分散情况的统计图。在箱形图中,异常值通常被定义为小于QL–1.5IQR或大于QU+1.5IQR的值。47010203政府需求岷山集团需求同盟商家数据清洗异常值处理处理方式:直接将含有异常值的样本删除;用具体的值进行替换;视为空缺值处理;不处理;48知识点数据预处理概念数据读取与写入数据索引与切片数据清洗描述性统计方法49010203政府需求岷山集团需求同盟商家群众描述性统计方法对于完整的数据预处理而言,把握数据的全貌是至关重要的。基本的描述性统计分析可以用来识别数据的性质,凸显应被视为噪声或离群点的数据值。描述性统计集中趋势均值中位数众数离散趋势极差方差标准差50010203政府需求岷山集团需求同盟商家群众描述性统计方法集中趋势度量

51010203政府需求岷山集团需求同盟商家群众描述性统计方法集中趋势度量中位数对于倾斜(非对称)数据,度量中心趋势更好的方法是中位数(median)。中位数是有序数据的中间值,它是把数据较高的一半与较低的一半分开的值。众数众数是另一种集中趋势度量。数据集的众数(mode)是集合中出现最频繁的值。因此,可以计算定性和定量属性的众数。可能最高频率对应多个不同值,导致有多个众数。52010203政府需求岷山集团需求同盟商家群众描述性统计方法离散趋势度量

53010203政府需求岷山集团需求同盟商家群众描述性统计方法离散趋势度量importnumpyasnpimportpandasaspdser_obj=pd.Series(np.random.randint(1,100,100))ser_obj.max()-ser_obj.min()98np.var(ser_obj)900.2np.std(ser_obj)30ser_obj.describe()546MIN感谢聆听5556实训2电影数据预处理57知识点数据合并数据脱敏时间序列处理数据分组数据聚合58实训目标掌握数据合并的方法;理解数据脱敏的方法;理解时间序列的表示与处理;掌握数据分组的方法;掌握数据聚合的方法;59知识点数据合并数据脱敏时间序列处理数据分组数据聚合60数据合并数据合并是指将多个数据表根据某种规则合并为一个数据表的过程。数据合并主键合并堆叠合并61010203政府需求岷山集团需求同盟商家群众数据合并堆叠合并concat()函数可以沿着一条轴的方向将多个数据表对象进行堆叠。concat(objs,axis=0,join=‘outer’,join_axes=None,ignore_index=False,keys=None,levels=None,names=None,

...)axis:表示连接的轴向,可以为0(默认)或1。join:表示连接的方式,inner表示内连接,outer(默认)表示外连接。names:结果分层索引中的层级的名称。62010203政府需求岷山集团需求同盟商家df_obj1=pd.DataFrame({'key':['a','b','c'],'A':[1,1,1],'B':[2,2,2]})df_obj2=pd.DataFrame({'key':['b','c','d'],'A':[1,1,1],'B':[2,2,2]})数据合并堆叠合并635MIN010203政府需求岷山集团需求群众pd.concat([df_obj1,df_obj2])pd.concat([df_obj1,df_obj2],axis=1)数据合并堆叠合并644MIN010203政府需求岷山集团需求同盟商家群众数据合并主键合并主键合并是指根据一个或多个键将不同的DatFrame对象连接起来。pandas.merge(left,right,how='inner',on=None,left_on=None,right_on=None,left_index=False,right_index=False)left,right:待合并的左右两侧数据对象。how:表示连接方式,inner(默认)为内连接,outer为外连接。left为使用左侧对象的键,right为使用右侧对象的键。

on:用于连接的列名。655MIN010203岷山集团需求群众pd.merge(df_obj1,df_obj2,how='inner')pd.merge(df_obj1,df_obj2,how='outer')数据合并主键合并pd.merge(df_obj1,df_obj2,how='left')pd.merge(df_obj1,df_obj2,how='right')66知识点数据合并数据脱敏时间序列处理数据分组数据聚合67数据脱敏数据脱敏是指根据数据的使用目的和使用环境制定一定的隐私保护规则,防止敏感数据在不可靠的环境下使用,防止因数据泄露造成不必要的损失。数据脱敏动态数据脱敏静态数据脱敏68时间序列处理静态数据脱敏:69静态数据脱敏需要将生产环境的数据进行备份,通过特定的方法排查问题或进行数据分析,出于安全考虑需要把敏感数据从生产环境脱敏完毕之后再在非生产环境使用。时间序列处理动态数据脱敏:70动态数据脱敏一般直接用在生产环境,访问敏感数据时实时进行脱敏,因为有时在不同情况下对于同一敏感数据的读取,需要做不同级别的脱敏处理。并且脱敏前后的数据须保持一致性和有效性。数据脱敏数据脱敏的方式有很多种,在选用脱敏方法时我们需要考虑到数据使用者的使用目的和使用方式,同时也要注意保护数据发布者的隐私和权益不受侵害。数据脱敏无效化处理随机化处理加密处理71知识点数据合并数据脱敏时间序列处理数据分组数据聚合72时间序列处理时间序列是指多个时间点形成的数值序列,一般作为某指标或特征的参考系。Pandas提供了多个时间相关类表示时间序列。时间序列时间戳Timestamp日期时间datetime时间索引DatetimeIndex时间片段Period73时间序列处理时间序列作用:74可以反映数据所描述对象的发展变化过程,描述现象的发展状态和结果。可以用于观测数据所描述对象的发展趋势和发展速度。可以探索数据所描述对象发展变化的规律,对某些现象进行预测。时间序列处理pd.to_datetime('20210801')pd.datetime(year=2021,month=8,day=1)pd.date_range('20210801',periods=1)pd.Period('2021/8/1')时间序列创建755MIN时间序列处理importnumpyasnpimportpandasaspddate=pd.date_range('20201230','20210102’)df_obj=pd.DataFrame(np.random.randint(1,10,size=(4,2)),index=date)df_obj['2021']时间序列选取765MIN时间序列处理date=pd.date_range('20201230','20210102’)date.strftime('%Y/%m/%d’)date.strftime('%Y-%m-%d-%H-%M-%S')时间序列表示%y两位数的年份表示%Y四位数的年份表示%m月份%d天%H24小时制小时数%M分钟数%S秒775MIN时间序列处理Pandas中的resample()是一个对常规时间序列数据重新采样和频率转换的便捷的方法。重采样resample(rule,

how=None,

axis=0,

fill_method=None,

closed=None,

label=None,

...)rule:表示重采样的频率。fill_method:表示重采样时如何插值,可以取ffill和bfill及None。closed:设置采样哪一端是闭合的。label:表示聚合后的标签,可设置为left或right78时间序列处理ser_obj=pd.Series(range(9),index=pd.date_range('20210801',periods=9,freq='T’))ser_obj.resample('3T',label='right').sum()#resample支持多种内置函数聚合数据,也支持OHLC方法,该方法可对金融数据进行有效处理重采样794MIN知识点数据合并数据脱敏时间序列处理数据分组数据聚合80数据分组在进行数据处理过程中,可以将属于不同类别的数据按照以一定标准进行分组处理。Pandas中最常用的方法为groupby()方法groupby(by=None,axis=0,level=None,as_index=True,sort=True,group_keys=True,squeeze=False,observed=Fal

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论