Python财经应用-编程基础、数据分析与可视化课件 第6章-Pandas数据处理分析-6.5 数据分析方法-6.6DataFrame的合并与连接_第1页
Python财经应用-编程基础、数据分析与可视化课件 第6章-Pandas数据处理分析-6.5 数据分析方法-6.6DataFrame的合并与连接_第2页
Python财经应用-编程基础、数据分析与可视化课件 第6章-Pandas数据处理分析-6.5 数据分析方法-6.6DataFrame的合并与连接_第3页
Python财经应用-编程基础、数据分析与可视化课件 第6章-Pandas数据处理分析-6.5 数据分析方法-6.6DataFrame的合并与连接_第4页
Python财经应用-编程基础、数据分析与可视化课件 第6章-Pandas数据处理分析-6.5 数据分析方法-6.6DataFrame的合并与连接_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

Python财经应用:编程基础、数据分析与可视化第六章Pandas数据处理分析中国农业大学李辉Pandas数据处理分析01Pandas基本数据结构02数据分析的基本流程03数据的导入与导出04数据预处理05数据分析方法06DataFrame的合并与连接Pandas数据处理分析01Pandas基本数据结构02数据分析的基本流程03数据的导入与导出04数据预处理05数据分析方法06DataFrame的合并与连接6.5

数据分析方法第六章Pandas数据处理分析数据分析方法——基本统计分析基本统计分析:又叫描述性统计分析,指运用制表和分类,图形以及计算概括性数据来描述数据特征的各项活动。描述性统计分析要对调查总体所有变量的有关数据进行统计性描述,主要包括数据的频数分析、集中趋势分析、离散程度分析、分布以及一些基本的统计图形。数据的中心位置:可分为均值(mean)、中位数(median)和众数(mode)。其中均值和中位数用于定量的数据,众数用于定性的数据。对于定量数据(data)来说,均值是总和除以总量N,中位数是数值大小位于中间(奇偶总量处理不同)的值,均值相对中位数来说,包含的信息量更大,但是容易受异常的影响。数据分析方法——基本统计分析利用DataFrame对象的describe()方法可以查看DataFrame中各个数值型字段的最小值、最值、均值、标准差等统计信息。此外,Pandas还提供了其他常用的描述统计方法,如表所示。方法含义方法含义min()最小值max()最大值mean()均值sum()求和median()中位数count()非空值数目mode()众数ptp()极差数据分析方法——基本统计分析利用DataFrame对象的describe()方法可以查看DataFrame中各个数值型字段的最小值、最值、均值、标准差等统计信息。此外,Pandas还提供了其他常用的描述统计方法,如表所示。方法含义方法含义var()方差std()标准差quantile()四分位数cov()协方差skew()样本偏度kurt()样本峰度sem()标准误差mad()平均绝对离差describe()描述统计value_counts()频数统计数据分析方法——基本统计分析describe()方法的语法格式如下:describe(percentiles=None,

include=None,

exclude=None)参数说明:percentiles:输出中包含的百分数,位于[0,1]之间。如果不设置该参数,则默认为[0.25,0.5,0.75],返回25%,50%,75%分位数。include、exclude:指定返回结果的形式。数据分析方法——基本统计分析利用DataFrame对象的describe()方法可以查看DataFrame中各个数值型字段的最小值、最值、均值、标准差等统计信息。此外,Pandas还提供了其他常用的描述统计方法,如表所示。方法含义方法含义var()方差std()标准差quantile()四分位数cov()协方差skew()样本偏度kurt()样本峰度sem()标准误差mad()平均绝对离差describe()描述统计value_counts()频数统计数据分析方法——基本统计分析分组分析是一种分析方法,通过根据特定的分组字段将数据对象划分为不同的部分,以便对比各组之间的差异。常用的统计指标包括计数、求和和平均值等。分组分析通常包含两个主要操作:分组和聚合。分组:指利用特定条件将原始数据划分为多个小组。聚合:涉及对每个分组中的数据执行某些操作(如求和或转换),然后将这些计算结果进行整合。数据分析方法——基本统计分析分组分析的过程大致可以分为以下三个步骤:1)拆分(split):根据一定的标准将数据集分割成若干个组。这个操作是在指定的轴上进行的,既可以在横轴方向上分组,也可以在纵轴方向上分组。2)应用(apply):将某个函数或方法(无论是内置的还是自定义的)应用于每个分组。3)合并(combine):将生成的新值整合到最终的结果对象中。数据分析方法——基本统计分析在Pandas中,groupby()函数用于将数据集按照某些标准(按照一列或多列)划分成若干个组一般与计算函数结合使用,实现数据的分组统计,该方法的语法格式如下:Pandas.groupby(by=None,axis=0,level=None,as_index=True,sort=True,group_keys=True,squeeze=False,observed=False,**kwargs)参数说明:by:指定分组依据的列名或列名列表。如果为None,则默认按照索引进行分组。axis:指定分组的轴向,0表示按行分组,1表示按列分组。默认值为0。level:如果数据具有多层索引(MultiIndex),可以通过指定level来选择特定层级进行分组。默认值为None。as_index:是否将分组键作为索引。如果为True,则分组键会成为结果DataFrame的索引;如果为False,则保留原始索引。默认值为True。数据分析方法——基本统计分析在Pandas中,groupby()函数用于将数据集按照某些标准(按照一列或多列)划分成若干个组一般与计算函数结合使用,实现数据的分组统计,该方法的语法格式如下:参数说明:sort:是否对分组键进行排序。如果为True,则分组键会按照升序排列;如果为False,则保持原顺序。默认值为True。group_keys:是否在分组键中包含所有唯一的分组键值。如果为True,则每个分组键都会出现在结果中;如果为False,则只出现实际出现的分组键。默认值为True。squeeze:如果可能的话,尝试将结果转换为Series而不是DataFrame。默认值为False。Pandas.groupby(by=None,axis=0,level=None,as_index=True,sort=True,group_keys=True,squeeze=False,observed=False,**kwargs)数据分析方法——基本统计分析在Pandas中,groupby()函数用于将数据集按照某些标准(按照一列或多列)划分成若干个组一般与计算函数结合使用,实现数据的分组统计,该方法的语法格式如下:参数说明:observed:仅适用于分类数据。如果为True,则返回每个唯一值的出现次数;如果为False,则返回每个唯一值的频率。默认值为False。**kwargs:其他传递给聚合函数的关键字参数。数据分组后返回数据的数据类型,它不再是一个DataFrame,而是一个groupby对象。可以调用groupby的方法,如size方法,返回一个含有分组大小的series的mean方法,返回每个分组数据的均值。Pandas.groupby(by=None,axis=0,level=None,as_index=True,sort=True,group_keys=True,squeeze=False,observed=False,**kwargs)数据分析方法——基本统计分析

importpandasaspddf=pd.read_excel('./data/sales.xlsx')#解决数据输出时列名不对齐的问题pd.set_option('display.unicode.ambiguous_as_wide',True)pd.set_option('display.unicode.east_asian_width',True)#抽取数据df_new=df[['产品类别','订单数量','销售额']]#分组统计求和print(df_new.groupby(by=['产品类别']).sum())1.按照一列(列名)分组统计在Pandas对象中,如果它的某一列数据满足不同的划分标准,则可以将该列当作分组键来拆分数据集。DataFrame数据的列索引名可以作为分组键,但需要注意的是,用于分组的对象必须是DataFrame数据本身,否则搜索不到索引名称会报错。【例6-28】读取销售数据,按照“产品类别”分组统计销量和销售额。数据分析方法——基本统计分析

订单数量销售额产品类别办公用品1206493818329.18家具产品451055282395.59技术产品531166053895.80运行结果如下:数据分析方法——基本统计分析2.按照多列分组统计分组键还可以是长度和DataFrame行数相同的列表或元组,相当于将列表或元组看作DataFrame的一列,然后将其分组。groupby可将列名直接当作分组对象,分组中,数值列会被聚合,非数值列会从结果中排除,当by不止一个分组对象(列名)时,需要使用list。数据分析方法——基本统计分析3.分组并按照指定列进行数据计算对上述示例按照“商品类别”(二级分类)进行汇总,关键代码如下:print(df_new.groupby('产品类别')['销售额'].sum())4.对分组数据进行迭代处理通过for循环对分组统计数据进行迭代(遍历分组数据)。按照“销售渠道”(一级分类)分组,并输出每一类商品的销量和销售额,关键代码:forsource,typeindf_new.groupby('产品类别'):print(source)print(type)数据分析方法——分布分析1.Pandas.cut函数Pandas.cut函数根据指定的分界点对连续数据进行等宽分箱处理。所谓等宽分箱,指的是每个分箱中的取值范围一致。pandas.cut(x,bins,right=True,labels=None,retbins=False,precision=3,include_lowest=False)参数说明:x:需要分箱的数据,可以是Series或DataFrame。bins:分箱边界,可以是一个整数、序列(如列表、数组)或间隔索引对象。如果bins是整数,则表示将数据分成等宽的箱子;如果bins是序列,则表示使用这些值作为箱子的边界;如果bins是间隔索引对象,则表示使用这些间隔作为箱子的边界。right:布尔值,默认为True。如果为True,则区间包含右端点;如果为False,则区间不包含右端点。数据分析方法——分布分析1.Pandas.cut函数Pandas.cut函数根据指定的分界点对连续数据进行等宽分箱处理。所谓等宽分箱,指的是每个分箱中的取值范围一致。pandas.cut(x,bins,right=True,labels=None,retbins=False,precision=3,include_lowest=False)参数说明:labels:可选参数,用于指定每个箱子的标签。如果没有提供,则返回整数标签。retbins:布尔值,默认为False。如果为True,则返回箱子的边界。precision:整数,默认为3。用于指定标签的精度。include_lowest:布尔值,默认为False。如果为True,则第一个区间包含左端点。数据分析方法——分布分析2.Pandas.qcut函数Pandas.qcut函数根据指定的箱子数量对连续数据进行等宽分箱处理。所谓等宽分箱指的是每个箱子中的数据量是相同的。数据分析方法——交叉分析1.数据透视表交叉分析可通过数据透视表和交叉表两种手段来完成。pivot_table()方法:模仿了Excel的数据透视表功能,允许用户通过指定行索引、列索引、数据值以及所需的计算方法(例如计数、求和、平均值等),轻松创建数据透视表。Pandas.pivot_table(data,values=None,index=None,columns=None,aggfunc='mean',fill_value=None,margins=False,margins_name='All')或:DataFrame.pivot_table(values=None,index=None,columns=None,aggfunc='mean',fill_value=None,margins=False,margins_name='All')数据分析方法——交叉分析参数说明:data:待分析的数据框(DataFrame)。values:需进行聚合计算的列名,可以是一个单独的列名或多个列名的列表。index:作为行索引的列名。columns:作为列索引的列名。aggfunc:聚合函数,默认为'mean'(平均值),其他选项包括'sum'(求和)、'count'(计数)、'max'(最大值)、'min'(最小值)等。fill_value:用于填充缺失值的数值,缺失值通常表示为NA(不可用)。margins:是否添加行和列的总计,默认为False。margins_name:当margins设为True时,用于命名总计行的列名,默认为'All'。函数执行后,将输出数据透视表的结果。数据分析方法——交叉分析2.交叉表交叉表是一种特殊的透视表,专用于计算分组频率,其虽然可以用pivot_table()方法实现,但是Pandas.crosstab()方法会更方便,默认统计个数(次数)。在Pandas中,crosstab()方法用于计算两个(或更多)因子之间的分组频率分布,它返回一个特殊的透视表(pivottable),通常用于统计频数。语法格式如下:Pandas.pivot_table(data,values=None,index=None,columns=None,aggfunc='mean',fill_value=None,margins=False,margins_name='All')参数说明:index:数组或Series,用于交叉表的行索引。columns:数组或Series,用于交叉表的列索引。values:(可选)数组或Series,用于填充交叉表的数据。如果提供了values,则aggfunc将应用于这些值。如果没有提供values,则默认计算分组频率。数据分析方法——交叉分析2.交叉表交叉表是一种特殊的透视表,专用于计算分组频率,其虽然可以用pivot_table()方法实现,但是Pandas.crosstab()方法会更方便,默认统计个数(次数)。在Pandas中,crosstab()方法用于计算两个(或更多)因子之间的分组频率分布,它返回一个特殊的透视表(pivottable),通常用于统计频数。语法格式如下:Pandas.pivot_table(data,values=None,index=None,columns=None,aggfunc='mean',fill_value=None,margins=False,margins_name='All')参数说明:rownames:(可选)字符串列表,用于行索引的名称。默认为None。colnames:(可选)字符串列表,用于列索引的名称。默认为None。aggfunc:(可选)函数,用于对values中的数据进行聚合。默认为None,此时计算每个组的频数。数据分析方法——交叉分析2.交叉表交叉表是一种特殊的透视表,专用于计算分组频率,其虽然可以用pivot_table()方法实现,但是Pandas.crosstab()方法会更方便,默认统计个数(次数)。在Pandas中,crosstab()方法用于计算两个(或更多)因子之间的分组频率分布,它返回一个特殊的透视表(pivottable),通常用于统计频数。语法格式如下:Pandas.pivot_table(data,values=None,index=None,columns=None,aggfunc='mean',fill_value=None,margins=False,margins_name='All')参数说明:margins:布尔值,可选参数,默认为False。如果为True,则添加行和列的总计(边际总计)。margins_name:字符串,可选参数,默认为All。当margins为True时,用于边际总计的名称。数据分析方法——交叉分析2.交叉表交叉表是一种特殊的透视表,专用于计算分组频率,其虽然可以用pivot_table()方法实现,但是Pandas.crosstab()方法会更方便,默认统计个数(次数)。在Pandas中,crosstab()方法用于计算两个(或更多)因子之间的分组频率分布,它返回一个特殊的透视表(pivottable),通常用于统计频数。语法格式如下:Pandas.pivot_table(data,values=None,index=None,columns=None,aggfunc='mean',fill_value=None,margins=False,margins_name='All')参数说明:dropna:布尔值,可选参数,默认为True。如果为True,则删除任何含有缺失值的组合。normalize:(可选)布尔值或字符串,默认为False。如果为True,则返回每个单元格的相对频率。如果为all,则返回所有值的比例。如果为columns,则返回每列的比例。如果为index,则返回每行的比例。数据分析方法——结构分析结构分析:在分组以及交叉的基础上,计算各组成部分所占的比重进而分析总体的内部特征的一种分析方法。这个分组主要是指定性分组,定性分组一般看结构,它的重点在于占总体的比重。数据分析方法——相关分析相关分析旨在探究现象间是否存在依赖关系,并针对存在依赖关系的现象,研究其相关的方向和程度,这是一种用于分析随机变量间相关性的统计手段。为了更精确地量化变量间的线性相关性,通常通过计算相关系数来进行相关分析。在二元变量的相关分析中,常用的系数包括Pearson相关系数、Spearman秩相关系数和判定系数。Pearson相关系数主要用于分析两个连续变量之间的关系,其前提是这些连续变量的数据分布遵循正态分布。对于那些不满足正态分布的变量,或者是分类变量和等级变量之间的关联性,可以使用Spearman秩相关系数(亦称为等级相关系数)来进行描述。相关系数:它是一种用于量化定量变量之间关系的统计指标。相关系数与相关程度如表所示。数据分析方法——相关分析相关分析函数如下:DataFrame.corr()Series.corr(other)如果由DataFrame调用corr()方法,那么将会计算每列两两之间的相似度。如果由序列调用corr()方法,那么只计算该序列与传入的序列之间的相关度。返回值:DataFrame调用,返回DataFrame;Series调用,返回一个数值型,大小为相关度。Pandas数据处理分析01Pandas基本数据结构02数据分析的基本流程03数据的导入与导出04数据预处理05数据分析方法06DataFrame的合并与连接6.6DataFrame的合并与连接第六章Pandas数据处理分析DataFrame的合并与连接——DataFrame的合并DataFrame的合并:指两个DataFrame在纵向或横向进行堆叠,合并为一个DataFrame。使用Pandas中的concat()方法可以完成DataFrame的合并操作。concat(objs,axis,ignore_index)参数说明:objs:要合并的对象,是包含多个Series或DataFrame对象的序列。axis:沿哪个轴合并。默认axis=0,表示合并记录;axis=1,表示合并字段。ignore_index:是否忽略原索引,按新的DataFrame重新组织索引。默认为False。DataFrame的合并与连接——DataFrame的连接进行数据分析时,如果需要同时从两个DataFrame中查询相关数据,则可以使用Pandas中的merge()方法将两个DataFrame的数据进行连接。在连接过程中,需要按照一个或多个共同的列名进行一一对应地匹配,这些共同的列名也被称为连接键。语法结构如下:pandas.merge(left,right,how='inner',on=None,left_on=None,right_on=None,left_index=False,right_index=False,sort=False,suffixes=('_x','_y'))参数说明:left:左侧的DataFrame对象。right:右侧的DataFrame对象。how:连接方式,可选值有'left'、'right'、'outer'、'inner'。默认为'inner'。on:用于连接的列名,必须是两个DataFrame共有的列名。如果未指定,则默认使用两个DataFrame的索引进行连接。DataFrame的合并与连接——DataFrame的连接进行数据分析时,如果需要同时从两个DataFrame中查询相关数据,则可以使用Pandas中的merge()方法将两个DataFrame的数据进行连接。在连接过程中,需要按照一个或多个共同的列名进行一一对应地匹配,这些共同的列名也被称为连接键。语法结构如下:pandas.merge(left,right,how='inner',on=None,left_on=None,right_on=None,left_index=False,right_index=False,sort=False,suff

温馨提示

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

最新文档

评论

0/150

提交评论