Python程序设计与财务应用(微课版)课件 第4章 数据分析工具pandas_第1页
Python程序设计与财务应用(微课版)课件 第4章 数据分析工具pandas_第2页
Python程序设计与财务应用(微课版)课件 第4章 数据分析工具pandas_第3页
Python程序设计与财务应用(微课版)课件 第4章 数据分析工具pandas_第4页
Python程序设计与财务应用(微课版)课件 第4章 数据分析工具pandas_第5页
已阅读5页,还剩70页未读 继续免费阅读

下载本文档

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

文档简介

Python程序设计与财务应用(微课版)第4章

数据分析工具pandas知识目标1.掌握一维数据结构Series;2.掌握二维表格型数据结构DataFrame。技能目标1.能够根据需要,运用Series完成一维财务数据的计算;2.能够将保存在Excel或CSV文件中的财务数据读入DataFrame中,再在运算后将其写入Excel或CSV文件中。学习目标章节导图思考题1.若有一列财务数据,则可以通过Python删除其中的重复值吗?2.Python可以对保存在Excel中的财务数据进行统计运算,并将结果写回Excel中吗?章节导读CONTENTS一维数据结构Series01.02.二维表格型数据结构DataFrame一维数据结构Series01.6Series是pandas模块的两种主要数据结构之一,是一种用于存储、处理一列数据的结构(与Excel中的一列数据类似),由索引(index)列和数据值(value)列组成,其中索引与数据值之间是一一对应的关系。其数据结构如图4-1所示。4.1.1创建Series7通过pandas模块中的Series()函数可以创建Series,其语法格式如下。Series()函数的参数说明如表4-1所示。4.1.1创建Series8【例4-1】通过列表和字典创建Series。(代码位置:资源\第4章)4.1.1创建Series94.1.1创建Series10(2)通过字典创建Series创建Series时,字典的key就是index(相当于指定index)。由于字典的key具有唯一性,所以索引不会重复。4.1.2Series的常用属性11通过Series的属性可以对其整体情况有全面的了解,同时有些运算中也会用到它的属性值。Series的常用属性如表4-2所示。4.1.2Series的常用属性12【例4-2】输出Series的常用属性。(代码位置:资源\第4章)4.1.2Series的常用属性13(2)输出index、values、shape、size属性4.1.3获取Series中的数据14在实际工作中,往往需要选择Series中某个位置、某个区域或满足特定条件的数据(类似于Excel中的筛选功能),为此pandas提供了两种获取数据的方式:索引和切片。1.通过索引获取Series中的单个数据值Series中的索引与字符串、列表等数据类型对象中的索引基本一样,都是在中括号中指定一个索引号来获取对应数据值。其语法格式如下。①在不指定index的情况下,中括号中的索引号仅能使用默认索引号。②在指定index的情况下,中括号中的索引号既能使用显式索引号,又能使用隐式索引号。4.1.3获取Series中的数据15通过指定索引号获取Series中单个数据值的过程如图4-2所示。4.1.3获取Series中的数据16【例4-3】分别通过隐式索引和凭证号显式索引获取摘要Series中的单个数据值。(代码位置:资源\第4章)4.1.3获取Series中的数据174.1.3获取Series中的数据18(1)通过切片获取一个与区间对应的连续数据值4.1.3获取Series中的数据19通过切片获取一个与区间对应的连续数据值的过程如图4-3所示。4.1.3获取Series中的数据20【例4-4】分别使用隐式索引和凭证号显式索引,通过切片获取摘要Series中的从'收到销售款'到'支付运费'的数据值。(代码位置:资源\第4章)4.1.3获取Series中的数据21(2)通过切片获取多个不连续的数据值通过切片获取多个不连续的数据值的语法格式如下。①在不指定index的情况下,仅能通过指定多个默认索引号来获取对应的多个数据值。②在指定index的情况下,既能指定多个显式索引号来获取对应的多个数据值,又能指定多个隐式索引号来获取对应的多个数据值。4.1.3获取Series中的数据22通过切片获取多个不连续的数据值的过程如图4-4所示。4.1.3获取Series中的数据23【例4-5】分别指定多个凭证号显式索引号和隐式索引号来获取摘要Series中对应的多个数据值。(代码位置:资源\第4章)4.1.3获取Series中的数据24(3)通过逻辑值列表获取Series中满足条件的多个数据值通过逻辑值列表获取Series中满足条件的多个数据值的语法格式如下。4.1.3获取Series中的数据25【例4-6】某公司1~6月的管理费用如表4-3所示。创建管理费用列表,使用月份作为显式索引,根据管理费用列表和月份显式索引创建管理费用Series,查找管理费用大于270元的月份。(代码位置:资源\第4章)4.1.4Series的常用方法26使用Series的方法,可以对存放在其中的原始数据进行适当的处理,以满足实际需求。下面介绍Series的常用方法。1.unique()方法使用Series中的unique()方法,可以去掉Series中的重复值。【例4-7】使用Series中的unique()方法,去掉收支账户Series中的重复值。(代码位置:资源\第4章)4.1.4Series的常用方法272.isin()方法isin()方法用于返回由逻辑值组成的Series(与原Series中数据值的个数相同)。使用该方法可以判断Series中是否存在某个或某几个数据值,如果存在,则该位置返回True,否则该位置返回False。【例4-8】使用Series中的isin()方法,判断收支账户Series中是否存在指定的数据值。(代码位置:资源\第4章)4.1.4Series的常用方法283.缺失值处理方法Python中的缺失值指的是NaN和None。NaN是出现在NumPy和pandas模块里的缺失值,None是Python中的缺失值,它们都表示数据为“空”,因此也被称为空值。需要注意的是,它们与空字符串('')、空列表([])是不一样的。在Series中,处理缺失值的方法主要有3种,分别是isna()(与isnull()等价)、notna()(与notnull()等价)和dropna()。①isna()和isnull()方法用于判断Series中是否有缺失值(NaN),如果有缺失值,则该位置返回True,否则该位置返回False。二者等价,均返回一个由逻辑值组成的Series。②notna()和notnull()方法与isna()和isnull()方法正好相反,如果有非缺失值,则该位置返回True,否则该位置返回False。二者等价,均返回一个由逻辑值组成的Series。③dropna()方法用于删除Series中的缺失值,返回一个由非缺失值组成的子Series。【例4-9】使用Series中处理缺失值的3种方法删除缺失值。(代码位置:资源\第4章)4.1.5Series的聚合运算和描述性统计29Series的聚合运算主要包括对Series中的数据值求和、求平均值、求最大值、求最小值、求方差、求标准差等,使用描述性统计函数可以输出数据的统计信息。【例4-10】对管理费用Series进行聚合运算和描述性统计。(代码位置:资源\第4章)4.1.5Series的聚合运算和描述性统计304.1.5Series的聚合运算和描述性统计31Series的p%分位数可以使得Series中至少有p%的数据值小于或等于这个值,且至少有(100-p)%的数据值大于或等于这个值。例如,某高等院校的入学考试成绩经常以百分位数的形式报告。假设某个学生在入学考试中的语文原始成绩为97分,而参加同一科考试的其他学生的成绩并不容易知道。但是如果原始成绩97分恰好对应的是75%分位数,我们就能知道大约75%的学生的语文分数比他低,而约25%的学生的语文分数比他高,如图4-6所示。4.1.5Series的聚合运算和描述性统计324.1.6课堂实验——比较两只基金的稳定度33【实验内容】现有两只基金过去12个月的净值,如表4-4所示。判断哪只基金的稳定度高。(代码位置:资源\第4章)【实验思路】衡量基金稳定度的工具就是标准差。标准差越大,未来基金净值可能变动的程度越大,稳定度越低,风险就越高。二维表格型数据结构DataFrame02.35DataFrame是pandas模块中两种主要数据结构之一,也是主要的数据结构,pandas模块中的绝大部分数据处理和分析工作都是通过DataFrame完成的。DataFrame是一个与Excel表格极其相似的二维表格型数据结构。它由3部分组成:行索引(index)、列索引(columns)和数据值(values)。其结构如图4-7所示。4.2.1通过已有对象中的数据创建DataFrame36使用pandas模块中的DataFrame()函数,可以通过已有对象中的数据来创建DataFrame,其语法格式如下。DataFrame()函数中各参数说明如表4-5所示。由于我们习惯行索引从1开始,所以行索引一般要自定义。列索引一般是用来表示该列的含义的,而默认列索引是无法体现含义的,所以列索引一般也要自定义。4.2.1通过已有对象中的数据创建DataFrame37【例4-11】某公司资产负债表的部分数据如表4-6所示,分别使用嵌套列表和字典创建DataFrame。(代码位置:资源\第4章)4.2.1通过已有对象中的数据创建DataFrame384.2.2通过读取文件中的数据创建DataFrame39在实际工作中,业务数据大多存储在外部文件中,如Excel、CSV等格式的文件。当我们需要使用pandas模块对其进行处理与分析的时候,就需要先将它们读取到DataFrame中。1.读取Excel文件使用pandas模块中的read_excel()函数可以将Excel文件中的数据读取到DataFrame中,其语法格式如下。4.2.2通过读取文件中的数据创建DataFrame40其参数说明如表4-7所示。4.2.2通过读取文件中的数据创建DataFrame414.2.2通过读取文件中的数据创建DataFrame42【例4-12】通过导入某公司“应收账款报表”工作簿中工作表里的数据,练习read_excel()函数各常用参数的用法。(代码位置:资源\第4章)4.2.2通过读取文件中的数据创建DataFrame432.读取CSV文件使用pandas中的read_csv()函数可以将CSV文件中的数据读取到DataFrame中,其语法格式如下。其参数说明如表4-8所示。4.2.2通过读取文件中的数据创建DataFrame44【例4-13】通过导入图4-12所示的某公司“天猫订单表.csv”文件中的数据,练习read_csv()函数各常用参数的用法。(代码位置:资源\第4章)4.2.2通过读取文件中的数据创建DataFrame454.2.3DataFrame的常用属性46通过DataFrame的属性可以对其整体情况有全面的了解,同时有些运算也会用到它的属性值。DataFrame的常用属性及其含义如表4-9所示。4.2.3DataFrame的常用属性47【例4-14】通过导入图4-13所示的某公司“利润及利润分配表.xlsx”文件中的数据,输出DataFrame的常用属性。(代码位置:资源\第4章)4.2.4选取DataFrame中的部分数据48导入DataFrame中的数据往往都是原始数据,而数据分析可能只需用到其中的部分数据,这时就需要用以下3种常用方法来选取DataFrame中的部分数据。1.通过布尔索引选取满足条件的数据布尔索引是一种可以根据给定的一个或多个条件进行判断的索引,其语法格式如下。其中需要注意以下两点。①“df['列名1']==条件1”中的“==”号,也可以替换为“>”“>=”“<”等比较运算符。②多个条件之间用“&”操作符表示逻辑与,用“|”操作符表示逻辑或,用“~”操作符表示逻辑非。【例4-15】通过导入某公司“产成品成本表”工作簿中工作表里的数据,练习通过布尔索引选取满足条件的数据。(代码位置:资源\第4章)4.2.4选取DataFrame中的部分数据492.通过loc、iloc函数选取数据通过pandas中的loc和iloc函数,可以快速定位想选取的行、列数据。①loc函数使用自定义索引选取数据,如果没有自定义索引,则使用默认索引。②iloc函数使用默认索引选取数据。【例4-16】通过导入某公司“会计科目及余额表”工作簿中工作表里的数据,练习使用loc、iloc函数选取数据。(代码位置:资源\第4章)4.2.4选取DataFrame中的部分数据502.通过loc、iloc函数选取数据通过pandas中的loc和iloc函数,可以快速定位想选取的行、列数据。①loc函数使用自定义索引选取数据,如果没有自定义索引,则使用默认索引。②iloc函数使用默认索引选取数据。【例4-16】通过导入某公司“会计科目及余额表”工作簿中工作表里的数据,练习使用loc、iloc函数选取数据。(代码位置:资源\第4章)4.2.4选取DataFrame中的部分数据514.2.4选取DataFrame中的部分数据524.2.5DataFrame的常用方法53导入DataFrame中的数据,通常需要对它们进行数据处理与计算。因此DataFrame提供了丰富的方法用于快速实现这些功能。下面介绍几个常用的方法。1.dropna()方法使用dropna()方法可以删除DataFrame中的缺失值(NaN),该方法返回一个删除缺失值所在的一整行数据后的新DataFrame,而原DataFrame保持不变。【例4-17】使用例4-16中的“会计科目及余额表”工作簿,采用dropna()方法删除DataFrame中的缺失值。(代码位置:资源\第4章)4.2.5DataFrame的常用方法542.fillna()方法使用fillna()方法可以对DataFrame中的缺失值(NaN)用非缺失值进行填充,该方法返回一个填充后的新DataFrame,而原DataFrame保持不变。【例4-18】使用例4-16中的“会计科目及余额表”工作簿,用“0.0”填充DataFrame中的缺失值。(代码位置:资源\第4章)4.2.5DataFrame的常用方法553.sort_values()方法使用sort_values()方法可以对DataFrame中的指定列按值排序,该方法返回一个按值排序后的新DataFrame,而原DataFrame保持不变。【例4-19】将“工资核算”工作簿中第一个工作表里的数据导入DataFrame,然后采用sort_values()方法对“工资总额”列分别进行升序和降序排列。(代码位置:资源\第4章)4.2.5DataFrame的常用方法564.sort_index()方法使用sort_index()方法可以对DataFrame中的行按行索引排序(通常是按自定义行索引排序),该方法返回一个按行索引排序后的新DataFrame,而原DataFrame保持不变。【例4-20】将“工资核算”工作簿中工作表里的数据导入DataFrame,同时指定行索引为“部门编码”,然后采用sort_index()方法对DataFrame中的行按自定义行索引“部门编码”分别进行升序和降序排列。(代码位置:资源\第4章)4.2.5DataFrame的常用方法575.drop()方法使用drop()方法可以删除DataFrame中指定的行或列,该方法返回一个删除指定行或列后的新DataFrame,而原DataFrame保持不变。【例4-21】将“工资核算”工作簿中第一个工作表里的数据导入DataFrame,然后使用drop()方法删除DataFrame中指定的行或列。(代码位置:资源\第4章)4.2.6DataFrame的连接与合并58在实际工作中,经常需要对多张表格中的数据进行连接或合并,再进行数据处理与分析。例如,一家总公司旗下有多家分公司,各分公司每月向总公司上报销售数据,总公司需要将这些数据合并,再进行销售情况分析;再例如,财务人员从公司的不同系统(ERP、CRM)中导出数据,将这些不同表格中的数据按照一定的规则进行连接、合并,再进行数据分析。针对这些情况,pandas提供了merge()函数和cancat()函数用于数据的连接与合并。1.DataFrame的连接merge()函数是用来连接两个DataFrame间的数据的,连接时需要将它们按照某个或某几个共同的列名一一对应地连接,这个共同的列名也称为连接键。总的来说,使用merge()函数的连接过程就是将数据一一对应的过程。4.2.6DataFrame的连接与合并59merge()函数的语法格式如下。4.2.6DataFrame的连接与合并60从表4-10中可以看出merge()函数共提供了4种连接方式:内连接、外连接、左连接和右连接。下面通过一个具体例子分别介绍。【例4-22】将“员工信息、销售数据”工作簿中相应工作表里的数据分别导入DataFrame,练习merge()函数的用法。(代码位置:资源\第4章)4.2.6DataFrame的连接与合并612.DataFrame的合并cancat()函数可以沿着指定的轴(上下或左右)将多个DataFrame(Series)合并在一起。其语法格式如下。4.2.6DataFrame的连接与合并62【例4-23】将“收支记账表”工作簿中多个工作表里的数据分别导入DataFrame中,通过cancat()函数将1月、2月、3月的数据导入3个DataFrame并完成纵向合并,将1月收入、1月支出两个DataFrame完成横向合并。(代码位置:资源\第4章)4.2.7DataFrame的数据透视63在实际工作中,经常需要对表格中的数据进行分类汇总。使用pandas模块中的pivot_table()函数(其功能类似于Excel数据透视表的功能),可对DataFrame中的数据进行多种分类统计。pivot_table()函数的语法格式如下。4.2.7DataFrame的数据透视64【例4-24】将“门店销售数据”工作簿中“销售数据”工作表里的数据导入DataFrame,然后使用pivot_table()函数汇总各门店的销售金额及各门店各产品的销售金额。(代码位置:资源\第4章)4.2.8将DataFrame中的数据保存到Excel文件中65当我们把DataFrame中的原始数据处理好后,可以将处理后的数据保存到Excel文件中。1.将处理后的数据保存到单个工作表中使用DataFrame中的to_excel()函数可以将其中的数据保存到Excel文件中,其语法格式如下。4.2.8将DataFrame中的数据保存到Excel文件中66【例4-25】将例4-24中汇总的各门店各产品的销售金额保存到“门店销售数据汇总.xlsx”文件中。(代码位置:资源\第4章)4.2.8将DataFrame中的数据保存到Excel文件中672.将处理后的数据保存到新增工作表中,不覆盖已有工作表联合使用pandas模块中的ExcelWriter()函数和DataFrame中的to_excel()函数可以将DataFrame中的数据保存到新增工作表中,并且不覆盖已有工作表。其语法格式如下。4.2.8将DataFrame中的数据保存到Excel文件中68【例4-26】将例4-24中汇总的各门店各产品的销售金额保存到原文件“门店销售数据.xlsx”中。(代码位置:资源\第4章)4.2.9将DataFrame中的数据保存到CSV文件中69我们不仅可以把DataFrame中的数据保存到Excel文件中,还可以把它保存到CSV文件中。使用pandas模块中的to_csv()函数可以将DataFrame中的数据保存到CSV文件中。其语法格式如下。其常用参数说明如表4-15所示。4.2.9将DataFrame中的数据保存到CSV文件中70【例4-27】将例4-24中汇总的各门店各产品的销售金额保存到“门店销售数据汇总.csv”文件中。(代码位置:资源\第4章)4.2.10课堂实验——序时账生成科目汇总表71【实验内容】现有某公司1

温馨提示

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

评论

0/150

提交评论