收藏 分销(赏)

统计分析基础.ppt

上传人:a199****6536 文档编号:13180551 上传时间:2026-01-30 格式:PPT 页数:38 大小:386.04KB 下载积分:8 金币
下载 相关 举报
统计分析基础.ppt_第1页
第1页 / 共38页
统计分析基础.ppt_第2页
第2页 / 共38页


点击查看更多>>
资源描述
Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,*,*,Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,*,*,*,大数据挖掘专家,单击此处编辑母版标题样式,单击此处编辑母版文本样,统计分析基础,1,掌握,DataFrame,的常用操作,目录,读写不同数据源的数据,2,转换与处理时间序列数据,3,pandas,提供了读取与存储关系型数据库数据的函数与方法。除了,pandas,库外,还需要使用,SQLAlchemy,库建立对应的数据库连接。,SQLAlchemy,配合相应数据库的,Python,连接工具(例如,MySQL,数据库需要安装,mysqlclient,或者,pymysql,库),使用,create_engine,函数,建立一个数据库连接。,creat_engine,中填入的是一个连接字符串。在使用,Python,的,SQLAlchemy,时,,MySQL,和,Oracle,数据库连接字符串的格式如下,数据库产品名,+,连接工具名:,/,用户名,:,密码,数据库,IP,地址,:,数据库端口号,/,数据库名称?,charset=,数据库数据编码,读写数据库数据,1.,数据库数据读取,read_sql_table,只能够读取数据库的某一个表格,不能实现查询的操作。,pandas.,read_sql_table,(table_name,con,schema=None,index_col=None,coerce_float=True,columns=None),read_sql_query,则只能实现查询操作,不能直接读取数据库中的某个表。,pandas.,read_sql_query,(sql,con,index_col=None,coerce_float=True),read_sql,是两者的综合,既能够读取数据库中的某一个表,也能够实现查询操作。,pandas.,read_sql,(sql,con,index_col=None,coerce_float=True,columns=None),读写数据库数据,1.,数据库数据读取,参数名称,说明,sql or table_name,接收,string,。表示读取的数据的表名或者,sql,语句。无默认。,con,接收数据库连接。表示数据库连接信息。无默认,index_col,接收,int,,,sequence,或者,False,。表示设定的列作为行名,如果是一个数列则是多重索引。默认为,None,。,coerce_float,接收,boolean,。将数据库中的,decimal,类型的数据转换为,pandas,中的,float64,类型的数据。默认为,True,。,columns,接收,list,。表示读取数据的列名。默认为,None,。,读写数据库数据,1.,数据库数据读取,pandas,三个数据库数据读取函数的参数几乎完全一致,唯一的区别在于传入的是语句还是表名。,数据库数据读取有三个函数,但数据存储则只有一个,to_sql,方法。,DataFrame.,to_sql,(name,con,schema=None,if_exists=fail,index=True,index_label=None,dtype=None),读写数据库数据,2.,数据库数据存储,参数名称,说明,name,接收,string,。代表数据库表名。无默认。,con,接收数据库连接。无默认。,if_exists,接收,fail,,,replace,,,append,。,fail,表示如果表名存在则不执行写入操作;,replace,表示如果存在,将原数据库表删除,再重新创建;,append,则表示在原数据库表的基础上追加数据。默认为,fail,。,index,接收,boolean,。表示是否将行索引作为数据传入数据库。默认,True,。,index_label,接收,string,或者,sequence,。代表是否引用索引名称,如果,index,参数为,True,此参数为,None,则使用默认名称。如果为多重索引必须使用,sequence,形式。默认为,None,。,dtype,接收,dict,。代表写入的数据类型(列名为,key,,数据格式为,values,)。默认为,None,。,查看访问DataFrame中的数据数据基本查看方式,pandas提供了to_datetime函数,能够实现这一目标。,描述分析DataFrame数据,ix方法在使用时既可以接收索引名称也可以接收索引位置。,以属性的方式访问,实现单列数据的访问。,iloc(detailorder_id=458).,更改DataFrame中的数据,原理是将这部分数据提取出来,重新赋值为新的数据。,接收string或array。,iloc行索引位置,列索引位置,描述分析DataFrame数据,to_sql(name,con,schema=None,if_exists=fail,index=True,index_label=None,dtype=None),表示是否将行索引作为数据传入数据库。,如果只是需要访问DataFrame某几行数据的实现方式则和上述的访问多列多行相似,选择所有列,使用“:”代替即可。,read_sql_query(sql,con,index_col=None,coerce_float=True),iloc(detailorder_id=458).,文本文件是一种由若干行字符构成的计算机文件,它是一种典型的顺序文件。,csv,是一种逗号分隔的文件格式,因为其分隔符不一定是逗号,又被称为字符分隔文件,文件以纯文本形式存储表格数据(数字和文本)。,读写文本文件,1.,文本文件读取,使用,read_table,来读取文本文件,。,pandas.,read_table,(filepath_or_buffer,sep=t,header=infer,names=None,index_col=None,dtype=None,engine=None,nrows=None),使用,read_csv,函数来读取,csv,文件。,pandas.,read_csv,(filepath_or_buffer,sep=t,header=infer,names=None,index_col=None,dtype=None,engine=None,nrows=None),读写文本文件,1.,文本文件读取,查看访问DataFrame中的数据loc,iloc访问方式,read_csv(filepath_or_buffer,sep=t,header=infer,names=None,index_col=None,dtype=None,engine=None,nrows=None),一组Timestamp构成的Index,可以用来作为Series或者DataFrame的索引。,指定DatetimeIndex的名字。,path_or_buf,代表excel表内数据的分表位置。,iloc(detailorder_id=458).,接收int、sequence或False。,转换与处理时间序列数据,iloc(detailorder_id=458).,以属性的方式访问,实现单列数据的访问。,查改增删DataFrame数据,pandas库基于NumPy,自然也可以用这些函数对数据框进行描述性统计。,read_csv(filepath_or_buffer,sep=t,header=infer,names=None,index_col=None,dtype=None,engine=None,nrows=None),类别型特征的描述性统计,read_table,和,read_csv,常用参数及其说明,。,读写文本文件,1.,文本文件读取,参数名称,说明,filepath,接收,string,。代表文件路径。无默认。,sep,接收,string,。代表分隔符。,read_csv,默认为“,”,,,read_table,默认为制表符“,Tab,”,。,header,接收,int,或,sequence,。表示将某行数据作为列名。默认为,infer,,表示自动识别。,names,接收,array,。表示列名。默认为,None,。,index_col,接收,int,、,sequence,或,False,。表示索引列的位置,取值为,sequence,则代表多重索引。默认为,None,。,dtype,接收,dict,。代表写入的数据类型(列名为,key,,数据格式为,values,)。默认为,None,。,engine,接收,c,或者,python,。代表数据解析引擎。默认为,c,。,nrows,接收,int,。表示读取前,n,行。默认为,None,。,read_table,和,read_csv,函数中的,sep,参数是指定文本的分隔符的,如果分隔符指定错误,在读取数据的时候,每一行数据将连成一片。,header,参数是用来指定列名的,如果是,None,则会添加一个默认的列名。,encoding,代表文件的编码格式,常用的编码有,utf-8,、,utf-16,、,gbk,、,gb2312,、,gb18030,等。如果编码指定错误数据将无法读取,,IPython,解释器会报解析错误。,读写文本文件,1.,文本文件读取,文本文件的存储和读取类似,结构化数据可以通过,pandas,中的,to_csv,函数实现以,csv,文件格式存储文件。,DataFrame.,to_csv,(path_or_buf=None,sep=,na_rep=”,columns=None,header=True,index=True,index_label=None,mode=w,encoding=None),读写文本文件,参数名称,说明,参数名称,说明,path_or_buf,接收,string,。代表文件路径。无默认。,index,接收,boolean,,代表是否将行名(索引)写出。默认为,True,。,sep,接收,string,。代表分隔符。默认为“,”,。,index_labels,接收,sequence,。表示索引名。默认为,None,。,na_rep,接收,string,。代表缺失值。默认为“”。,mode,接收特定,string,。代表数据写入模式。默认为,w,。,columns,接收,list,。代表写出的列名。默认为,None,。,encoding,接收特定,string,。代表存储文件的编码格式。默认为,None,。,header,接收,boolean,,代表是否将列名写出。默认为,True,。,2.,文本文件,储存,pandas,提供了,read_excel,函数来读取“,xls,”“,xlsx,”两种,Excel,文件,。,pandas.,read_excel,(io,sheetname=0,header=0,index_col=None,names=None,dtype=None),读写,Excel,文件,参数名称,说明,io,接收,string,。表示文件路径。无默认。,sheetname,接收,string,、,int,。代表,excel,表内数据的分表位置。默认为,0,。,header,接收,int,或,sequence,。表示将某行数据作为列名。默认为,infer,,表示自动识别。,names,接收,int,、,sequence,或者,False,。表示索引列的位置,取值为,sequence,则代表多重索引。默认为,None,。,index_col,接收,int,、,sequence,或者,False,。表示索引列的位置,取值为,sequence,则代表多重索引。默认为,None,。,dtype,接收,dict,。代表写入的数据类型(列名为,key,,数据格式为,values,)。默认为,None,。,1.Excel,文件读取,将文件存储为,Excel,文件,可以使用,to_excel,方法。,其语法格式如下。,DataFrame.,to_excel,(excel_writer=None,sheetname=None,na_rep=”,header=True,index=True,index_label=None,mode=w,encoding=None),to_csv,方法的常用参数基本一致,区别之处在于指定存储文件的文件路径参数名称为,excel_writer,,并且没有,sep,参数,增加了一个,sheetnames,参数用来指定存储的,Excel sheet,的名称,默认为,sheet1,。,读写,Excel,文件,2.Excel,文件,储存,1,掌握,DataFrame,的常用操作,目录,读写不同数据源的数据,2,转换与处理时间序列数据,3,函数,返回值,values,元素,index,索引,columns,列名,dtypes,类型,size,元素个数,ndim,维度数,shape,数据形状(行列数目),查看,DataFrame,的常用属性,基础属性,对单列数据的访问,:,DataFrame,的单列数据为一个,Series,。根据,DataFrame,的定义可以知晓,DataFrame,是一个带有标签的二维数组,每个标签相当每一列的列名。,有以下两种方式来实现对单列数据的访问。,以字典访问某一个,key,的值的方式使用对应的列名,实现单列数据的访问,。,以属性的方式访问,,,实现单列数据的访问,。(不建议使用,易引起混淆),查,改增删,DataFrame,数据,1.,查看,访问,DataFrame,中的数据,数据基本查看方式,对,某一列的某几行,访问,:,访问,DataFrame,中某一列的某几行时,单独一列的,DataFrame,可以视为一个,Series,(另一种,pandas,提供的类,可以看作是只有一列的,DataFrame,),而访问一个,Series,基本和访问一个一维的,ndarray,相同,。,对多列数据访问,:,访问,DataFrame,多列数据可以将多个列索引名称视为一个列表,同时访问,DataFrame,多列数据中的多行数据和访问单列数据的多行数据方法基本相同,。,查,改增删,DataFrame,数据,1.,查看,访问,DataFrame,中的数据,数据基本查看方式,对某几行访问,:,如果只是需要访问,DataFrame,某几行数据的实现方式则和上述的访问多列多行相似,选择所有列,使用“,:,”代替即可,。,head,和,tail,也可以得到多行数据,但是用这两种方法得到的数据都是从开始或者末尾获取的连续数据,。,默认参数,为,访问,5,行,只要在方法后方的“,(),”中填入访问行数即可实现目标行数的查看。,查,改增删,DataFrame,数据,1.,查看,访问,DataFrame,中的数据,数据基本查看方式,loc,方法是针对,DataFrame,索引名称的切片方法,如果传入的不是索引名称,那么切片操作将无法执行。利用,loc,方法,能够实现所有单层索引切片操作。,loc,方法使用方法如下,。,DataFrame.,loc,行索引名称或条件,列索引名称,iloc,和,loc,区别是,iloc,接收的必须是行索引和列索引的位置。,iloc,方法的使用方法如下,。,DataFrame.,iloc,行索引位置,列索引位置,查,改增删,DataFrame,数据,1.,查看,访问,DataFrame,中的数据,loc,,,iloc,访问方式,使用,loc,方法和,iloc,实现多列切片,其原理的通俗解释就是将多列的列名或者位置作为一个列表或者数据传入,。,使用,loc,,,iloc,方法可以取出,DataFrame,中的任意数据,。,在,loc,使用的时候内部传入的行索引名称如果为一个区间,则前后均为闭区间;,iloc,方法使用时内部传入的行索引位置或列索引位置为区间时,则为前闭后开区间。,loc,内部还可以传入表达式,结果会返回满足表达式的所有值,。,查,改增删,DataFrame,数据,1.,查看,访问,DataFrame,中的数据,loc,,,iloc,访问方式,若使用,detail.ilocdetailorder_id=458,1,5,读取数据,则会报错,,原因在于此处条件返回的为一个布尔值,Series,,而,iloc,可以接收的数据类型并不包括,Series,。根据,Series,的构成只要取出该,Series,的,values,就可以了,。需改为,detail.iloc(detailorder_id=458).values,1,5),。,loc,更加灵活多变,代码的可读性更高,,iloc,的代码简洁,但可读性不高。具体在数据分析工作中使用哪一种方法,根据情况而定,大多数时候建议使用,loc,方法。,查,改增删,DataFrame,数据,1.,查看,访问,DataFrame,中的数据,loc,,,iloc,访问方式,ix,方法更像是,loc,和,iloc,两种切片方法的融合。,ix,方法在使用时既可以接收索引名称也可以接收索引位置。其使用方法如下。,DataFrame.,ix,行索引的名称或位置或者条件,列索引名称或位置,使用,ix,方法时有个注意事项,第一条,当索引名称和位置存在部分重叠时,,ix,默认优先识别名称,。,查,改增删,DataFrame,数据,1.,查看,访问,DataFrame,中的数据,切片方法之,ix,控制,ix,方法需要注意以下几点。,使用,ix,参数时,尽量保持行索引名称和行索引位置重叠,使用时就无须考虑取值时区间的问题。一律为闭区间。,使用列索引名称,而非列索引位置。主要用来保证代码可读性。,使用列索引位置时,需要注解。同样保证代码可读性。,除此之外,ix,方法还有一个缺点,就是在面对数据量巨大的任务的时候,其效率会低于,loc,和,iloc,方法,所以在日常的数据分析工作中建议使用,loc,和,iloc,方法来执行切片操作。,查,改增删,DataFrame,数据,1.,查看,访问,DataFrame,中的数据,切片方法之,ix,更改,DataFrame,中的数据,原理是将这部分数据提取出来,重新赋值为新的数据,。,需要注意的是,数据更改直接针对,DataFrame,原数据更改,操作无法撤销,如果做出更改,需要对更改条件做确认或对数据进行备份。,查,改增删,DataFrame,数据,2.,更新修改,DataFrame,中的数据,DataFrame,添加一列的方法非常简单,只需要新建一个列索引。并对该索引下的数据进行赋值操作即,可。,新增的一列值是相同的则直接赋值一个常量即可,。,查,改增删,DataFrame,数据,3.,为,DataFrame,增添数据,描述分析DataFrame数据,to_sql(name,con,schema=None,if_exists=fail,index=True,index_label=None,dtype=None),表示索引列的位置,取值为sequence则代表多重索引。,drop(labels,axis=0,level=None,inplace=False,errors=raise),ix方法在使用时既可以接收索引名称也可以接收索引位置。,查看访问DataFrame中的数据数据基本查看方式,在多数情况下,时间相关的字符串都会转换成为Timestamp。,iloc行索引位置,列索引位置,pandas时间相关的类,查改增删DataFrame数据,将文件存储为Excel文件,可以使用to_excel方法。,weekday_name,表示设定的列作为行名,如果是一个数列则是多重索引。,encoding代表文件的编码格式,常用的编码有utf-8、utf-16、gbk、gb2312、gb18030等。,接收int或sequence。,删除某列或某行数据需要用到,pandas,提供的方法,drop,,,drop,方法的用法如下。,axis,为,0,时表示删除行,,axis,为,1,时表示删除列。,drop(labels,axis=0,level=None,inplace=False,errors=raise),常用参数如下所示。,查,改增删,DataFrame,数据,4.,删除某列或某行数据,参数名称,说明,labels,接收,string,或,array,。代表删除的行或列的标签。无默认。,axis,接收,0,或,1,。代表操作的轴向。默认为,0,。,levels,接收,int,或者索引名。代表标签所在级别。默认为,None,。,inplace,接收,boolean,。代表操作是否对原数据生效。默认为,False,。,数值型数据的描述性统计主要包括了计算数值型数据的完整情况、最小值、均值、中位数、最大值、四分位数、极差、标准差、方差、协方差和变异系数等。在,NumPy,库中,一些常用的,统计学函数,如下表所示。,pandas,库基于,NumPy,,自然也可以用这些函数对数据框进行描述性统计,。,描述分析,DataFrame,数据,1.,数值型特征的描述性统计,NumPy,中的描述性统计函数,函数名称,说明,函数名称,说明,np.min,最小值,np.max,最大值,np.mean,均值,np.ptp,极差,np.median,中位数,np.std,标准差,np.var,方差,np.cov,协方差,pandas,还提供了更加便利的方法来,计算均值,如,detailamounts.mean(),。,pandas,还提供了一个方法叫作,describe,,能够一次性得出数据框所有数值型特征的非空值数目、均值、四分位数、标准差。,描述分析,DataFrame,数据,1.,数值型特征的描述性统计,pandas,描述性统计方法,方法名称,说明,方法名称,说明,min,最小值,max,最大值,mean,均值,ptp,极差,median,中位数,std,标准差,var,方差,cov,协方差,sem,标准误差,mode,众数,skew,样本偏度,kurt,样本峰度,quantile,四分位数,count,非空值数目,describe,描述统计,mad,平均绝对离差,描述类别型特征的分布状况,可以使用频数统计表。,pandas,库中实现频数统计的方法为,value_counts,。,pandas,提供了,categories,类,可以使用,astype,方法将目标特征的数据类型转换为,category,类别,。,describe,方法除了支持传统数值型以外,还能够支持对,category,类型的数据进行描述性统计,四个统计量分别为列非空元素的数目,类别的数目,数目最多的类别,数目最多类别的数目,。,描述分析,DataFrame,数据,2.,类别型特征的描述性统计,1,掌握,DataFrame,的常用操作,目录,读写不同数据源的数据,2,转换与处理时间序列数据,3,在多数情况下,对时间类型数据进行分析的前提就是将原本为字符串的时间转换为标准时间类型。,pandas,继承了,NumPy,库和,datetime,库的时间相关模块,提供了,6,种时间相关的类,。,转换字符串时间为标准时间,pandas,时间相关的类,类名称,说明,Timestamp,最基础的时间类。表示某个时间点。在绝大多数的场景中的时间数据都是,Timestamp,形式的时间。,Period,表示单个时间跨度,或者某个时间段,例如某一天,某一小时等。,Timedelta,表示不同单位的时间,例如,1,天,,1.5,小时,,3,分钟,,4,秒等,而非具体的某个时间段。,DatetimeIndex,一组,Timestamp,构成的,Index,,可以用来作为,Series,或者,DataFrame,的索引。,PeriodtimeIndex,一组,Period,构成的,Index,,可以用来作为,Series,或者,DataFrame,的索引。,TimedeltaIndex,一组,Timedelta,构成的,Index,,可以用来作为,Series,或者,DataFrame,的索引。,其中,Timestamp,作为时间类中最基础的,也是最为常用的。在多数情况下,时间相关的字符串都会转换成为,Timestamp,。,pandas,提供了,to_datetime,函数,能够实现这一目标。,值得注意的是,,Timestamp,类型时间是有限制的,。,转换字符串时间为标准时间,Timestamp,类型,除了将数据字原始,DataFrame,中直接转换为,Timestamp,格式外,还可以将数据单独提取出来将其转换为,DatetimeIndex,或者,PeriodIndex,。,转换为,PeriodIndex,的时候需要注意,需要通过,freq,参数指定时间间隔,常用的时间间隔有,Y,为年,,M,为月,,D,为日,,H,为小时,,T,为分钟,,S,为秒。两个函数可以用来转换数据还可以用来创建时间序列数据,其参数非常类似,。,转换字符串时间为标准时间,DatetimeIndex,与,PeriodIndex,函数,DatetimeIndex,和,PeriodIndex,两者区别在日常使用的过程中相对较小,其中,DatetimeIndex,是用来指代一系列时间点的一种数据结构,而,PeriodIndex,则是用来指代一系列时间段的数据结构。,转换字符串时间为标准时间,DatetimeIndex,与,PeriodIndex,函数及其参数说明,参数名称,说明,data,接收,array,。表示,DatetimeIndex,的值。无默认。,freq,接收,string,。表示时间的间隔频率。无默认。,start,接收,string,。表示生成规则时间数据的起始点。无默认。,periods,表示需要生成的周期数目。无默认。,end,接收,string,。表示生成规则时间数据的终结点。无默认。,tz,接收,timezone,。表示数据的时区。默认为,None,。,name,接收,int,,,string,。默认为空。指定,DatetimeIndex,的名字。,在多数涉及时间相关的数据处理,统计分析的过程中,需要提取时间中的年份,月份等数据。使用对应的,Timestamp,类属性就能够实现这一目的,。,结合,Python,列表推导式,可以实现对,DataFrame,某一列时间信息数据的提取。,提取时间序列数据信息,Timestamp,类常用属性,属性名称,说明,属性名称,说明,year,年,week,一年中第几周,month,月,quarter,季节,day,日,weekofyear,一年中第几周,hour,小时,dayofyear,一年中的第几天,minute,分钟,dayofweek,一周第几天,second,秒,weekday,一周第几天,date,日期,weekday_name,星期名称,time,时间,is_leap_year,是否闰年,提取时间序列数据信息,在,DatetimeIndex,和,PeriodIndex,中提取信息,在,DatetimeIndex,和,PeriodIndex,中提取对应信息,可以,以类属性方式实现,。,值得注意的是,PeriodIndex,相比于,DatetimeIndex,少了,weekday_name,属性,所以不能够用该属性提取星期名称数据。若想要提取信息名称可以通过提取,weekday,属性,而后将,0-6,四个标签分别赋值为,Monday,至,Sunday,。,Timedelta,是时间相关的类中的一个异类,不仅能够使用正数,还能够使用负数表示单位时间,例如,1,秒,,2,分钟,,3,小时等。使用,Timedelta,类,配合常规的时间相关类能够轻松实现时间的算术运算。目前,Timedelta,函数中时间周期中没有年和月。所有周期名称,对应单位及其说明如,下表,所示。,加减时间数据,Timedelta,类,周期名称,单位,说明,周期名称,单位,说明,weeks,无,星期,seconds,s,秒,days,D,天,milliseconds,ms,毫秒,hours,h,小时,microseconds,us,微妙,minutes,m,分,nanoseconds,ns,纳秒,使用,Timedelta,,可以很轻松地实现在某个时间上加减一段时间,。,除了使用,Timedelta,实现时间的平移外,还能够直接对两个时间序列进行相减,从而得出一个,Timedelta,。,加减时间数据,Timedelta,类,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服