资源描述
乘风破浪,世界就在眼前乘风破浪,世界就在眼前第3章 使用Pandas进行数据分析1目录目录 Pandas安装3.1 Pandas的对象3.2 Pandas基本操作3.3 Pandas的基本运用3.4 Pandas使用案例3.5目录 Pandas安装3.1 P23.1 Pandas安装安装TEXT add hereTEXT add hereTEXT add hereTEXT add hereTEXT add hereTEXT add herePandas是什么?是什么?Pandas是基于是基于NumPy的一种工具,该工具是为了解决数据的一种工具,该工具是为了解决数据分析任务而创建的,它纳入了大量库和一些标准的数据模分析任务而创建的,它纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。型,提供了高效地操作大型数据集所需的工具。Pandas提提供了大量能快速便捷处理数据的函数和方法,是使供了大量能快速便捷处理数据的函数和方法,是使Python成为强大而高效的数据分析的重要因素之一。成为强大而高效的数据分析的重要因素之一。3.1 Pandas安装TEXT add hereTEX33.1 Pandas安装安装TEXT add hereTEXT add hereTEXT add here在在cmd下使用命令:下使用命令:pip install pandas注意:若没有配置环境变量,需要先注意:若没有配置环境变量,需要先cd到到python的安装目录的安装目录安装完成后实验安装完成后实验Pandas是否安装成功是否安装成功3.1 Pandas安装TEXT add here在cm4Pandas对象对象Series对象对象 DataFrame对象对象是什么?是什么?怎么用?怎么用?有什么特点?有什么特点?3.2 Pandas的对象的对象Pandas对象Series对象 DataFrame53.2.1 Series对象对象TEXT add hereTEXT add hereTEXT add hereTEXT add hereTEXT add hereTEXT add hereSeries是是Pandas中最基本的对象,类似于一维数组的对象,由一组中最基本的对象,类似于一维数组的对象,由一组数据和一组与之相关的数据标签(索引)组成。数据和一组与之相关的数据标签(索引)组成。Series对象相比于一维数据结构多了一些额外的功能,它的内部结对象相比于一维数据结构多了一些额外的功能,它的内部结构很简单,由两个相互关联的数组组成(构很简单,由两个相互关联的数组组成(values和和index),其中),其中values数组用来存放数据,主数组的每一个元素都有一个与之相关数组用来存放数据,主数组的每一个元素都有一个与之相关联的标签,这些标签存储在一个联的标签,这些标签存储在一个index的数组中。的数组中。3.2.1 Series对象TEXT add hereT63.2.1 Series对象对象TEXT add hereTEXT add hereTEXT add here标签标签index内的内容也可以进行指定内的内容也可以进行指定可以尝试查看这个对象中的两个数组可以尝试查看这个对象中的两个数组values和和index里面的内容里面的内容3.2.1 Series对象TEXT add here标73.2.1 Series对象对象TEXT add hereTEXT add hereTEXT add hereSeries对象的对象的values属性本来就是一个属性本来就是一个Numpy的一个数组对象,而的一个数组对象,而Series对象中的对象中的values数组也是对数组也是对Numpy中的中的ndarray对象的引用,如对象的引用,如果改变原有对象的值,果改变原有对象的值,Series对象的值也会跟着改变。对象的值也会跟着改变。3.2.1 Series对象TEXT add hereS83.2.1 Series对象对象TEXT add hereTEXT add hereTEXT add here因为因为Series对象的对象的index对应对应values,所以可以用字典对象来构造,所以可以用字典对象来构造Series对象。字典中的所有的键放在对象。字典中的所有的键放在Series对象的对象的index数组中,字典数组中,字典中的所有值放在中的所有值放在Series对象的对象的values数组中,仍然保持对应关系。下数组中,仍然保持对应关系。下面的代码给出了一个字典实例,如果面的代码给出了一个字典实例,如果index中的值在字典中有对应的中的值在字典中有对应的键,则生成的键,则生成的Series对象中该值对应的元素为在字典中对应的值,对象中该值对应的元素为在字典中对应的值,如果找不到,则其值为如果找不到,则其值为NaN,即空值。,即空值。3.2.1 Series对象TEXT add here因93.2.2 DataFrame对象对象TEXT add hereTEXT add hereTEXT add hereDataFrame对象的数据结构跟对象的数据结构跟excel表相似,其目的是将表相似,其目的是将Series的使用的使用场景由一维扩展到多维,它由按一定顺序排列的多列数据组成,各场景由一维扩展到多维,它由按一定顺序排列的多列数据组成,各列的数据类型可以有所不同。列的数据类型可以有所不同。DataFrame对象有两个索引数组(对象有两个索引数组(index和和columns),第一个数组),第一个数组index与行相关,它与与行相关,它与Series的索引数组极为相似,每个索引值都跟的索引数组极为相似,每个索引值都跟所在的一行相关联;第二个数组所在的一行相关联;第二个数组columns包含一系列列标签(每个包含一系列列标签(每个值相当于列名)。值相当于列名)。DataFrame可以理解为一个由可以理解为一个由Series组成的字典,组成的字典,其中每一列的名称作为字典的键,形成其中每一列的名称作为字典的键,形成DataFrame列的列的Series作为字作为字典的值,每个典的值,每个Series的所有元素映射到称为的所有元素映射到称为index的标签数组中。的标签数组中。3.2.2 DataFrame对象TEXT add he103.2.2 DataFrame对象对象TEXT add hereTEXT add hereTEXT add here与与Series对象一样,可以指定对象一样,可以指定index数组的内容,下面的案例中指定数组的内容,下面的案例中指定了了index数组的内容。数组的内容。3.2.2 DataFrame对象TEXT add he113.2.2 DataFrame对象对象TEXT add hereTEXT add hereTEXT add here同样可以使用数组矩阵构造同样可以使用数组矩阵构造DataFrame对象对象3.2.2 DataFrame对象TEXT add he12基本基本操作操作导入与导出数据导入与导出数据数据的查看与检查数据的查看与检查数据的增删查改数据的增删查改是什么?是什么?怎么用?怎么用?有什么特点?有什么特点?3.3 Pandas基本操作基本操作基本导入与导出数据数据的查看与检查数据的增删查改是什么?怎么133.3.1 导入与导出数据导入与导出数据1.数据导入数据导入(1)csv文件的导入文件的导入函数原型:函数原型:read_csv(filrpath,sep,names,encoding)。参数:参数:filepath完成导入完成导入csv文件的路径,一般使用绝对路径,且用文件的路径,一般使用绝对路径,且用“/”或者或者“”表示;表示;sep表示分隔符,一般表示分隔符,一般csv文件默认是逗号;文件默认是逗号;names表示导入的列和指定列的顺序,默认按顺序导入所有列;表示导入的列和指定列的顺序,默认按顺序导入所有列;encoding表示文件编码,大多时候会让参数表示文件编码,大多时候会让参数encoding=utf-8。3.3.1 导入与导出数据1.数据导入(1)csv文件的导143.3.1 导入与导出数据导入与导出数据1.数据导入数据导入(2)txt文件的导入文件的导入函数原型:函数原型:read_table(filrpath,sep,names,encoding)。参数:参数:filepath完成导入完成导入csv文件的路径,一般使用绝对路径,且用文件的路径,一般使用绝对路径,且用“/”或者或者“”表示;表示;sep表示分隔符,一般表示分隔符,一般csv文件默认是逗号;文件默认是逗号;names表示导入的列和指定列的顺序,默认按顺序导入所有列;表示导入的列和指定列的顺序,默认按顺序导入所有列;encoding表示文件编码,大多时候会让参数表示文件编码,大多时候会让参数encoding=utf-8。3.3.1 导入与导出数据1.数据导入(2)txt文件的导153.3.1 导入与导出数据导入与导出数据1.数据导入数据导入(3)Excel文件的导入文件的导入函数原型:函数原型:read_excel(filrpath,sep,names)。参数:参数:filepath完成导入完成导入csv文件的路径,一般使用绝对路径,且用文件的路径,一般使用绝对路径,且用“/”或者或者“”表示;表示;sep表示分隔符,一般表示分隔符,一般csv文件默认是逗号;文件默认是逗号;names表示导入的列和指定列的顺序,默认按顺序导入所有列表示导入的列和指定列的顺序,默认按顺序导入所有列。3.3.1 导入与导出数据1.数据导入(3)Excel文件163.3.1 导入与导出数据导入与导出数据2.数据导出数据导出函数原型函数原型:to_csv(filrpath,sep,names,encoding)。参数:参数:文件路径文件路径filrpath的末尾要写上的末尾要写上.csv文件格式;分隔符文件格式;分隔符sep是输出是输出文件的分隔符,默认为逗号,也可以用制表符等;文件的分隔符,默认为逗号,也可以用制表符等;names是否输出索是否输出索引,默认为输出索引,如果不想要可以改为引,默认为输出索引,如果不想要可以改为False;encoding是否输出是否输出列名,默认为输出列名;编码默认为列名,默认为输出列名;编码默认为utf-8。3.3.1 导入与导出数据2.数据导出函数原型:to_cs173.3.2 数据的查看与检查数据的查看与检查1.Series对象数据的查看与检查对象数据的查看与检查直接通过主数组的下标来获取,直接通过主数组的下标来获取,或者或者通过对象的通过对象的index标签值来获取标签值来获取。可以一次性获取多个元素,同样也有和刚刚类似的两种方法,对于数组下可以一次性获取多个元素,同样也有和刚刚类似的两种方法,对于数组下标,只需要用标,只需要用“:”表示起始到终止的位置即可(这个结果只包含起始值但表示起始到终止的位置即可(这个结果只包含起始值但不包含终止值)。不包含终止值)。3.3.2 数据的查看与检查1.Series对象数据的查看183.3.2 数据的查看与检查数据的查看与检查2.DataFrame对象数据的查看与检查对象数据的查看与检查3.3.2 数据的查看与检查2.DataFrame对象数据193.3.2 数据的查看与检查数据的查看与检查2.DataFrame对象数据的查看与检查对象数据的查看与检查DataFrame对象也可以获得一列数据,获得一列数据有两种方对象也可以获得一列数据,获得一列数据有两种方法,一种是用法,一种是用“”,另一种使用符号,另一种使用符号“.”来连接。来连接。DataFrame对象对象也可以获得多行数据也可以获得多行数据。3.3.2 数据的查看与检查2.DataFrame对象数据203.3.3 数据的增删查改数据的增删查改1.数据的增加数据的增加增加数据可以像字典一样直接添加增加数据可以像字典一样直接添加。也可以使用也可以使用append()函数进行函数进行增加,增加效果类似增加,增加效果类似,但区别在于,但区别在于append()函数添加元素后,原来的值没有改变。函数添加元素后,原来的值没有改变。3.3.3 数据的增删查改1.数据的增加增加数据可以像字典213.3.3 数据的增删查改数据的增删查改2.数据的删除数据的删除del方法可用于删除元素方法可用于删除元素Pandas也提供了删除也提供了删除函数函数pop()3.3.3 数据的增删查改2.数据的删除del方法可用于删223.3.3 数据的增删查改数据的增删查改3.数据的查找与修改数据的查找与修改由于由于Pandas库是以库是以Numpy库为基础开发的,所以库为基础开发的,所以Numpy数组的数组的许多操作方法对许多操作方法对Series对象也有效,例如数据的筛选。对象也有效,例如数据的筛选。对于对于DataFrame对象的数据修改,也是类似。查找某个元素值,对象的数据修改,也是类似。查找某个元素值,类似于二维数组的查找办法,需要用两个类似于二维数组的查找办法,需要用两个分别找它的行标和列分别找它的行标和列标;同时,也可以找到它的位置然后修改它的值。标;同时,也可以找到它的位置然后修改它的值。3.3.3 数据的增删查改3.数据的查找与修改由于Pand23基本基本运用运用数据统计数据统计算数运算与数据对齐算数运算与数据对齐是什么?是什么?怎么用?怎么用?有什么特点?有什么特点?3.4 Pandas的基本运用的基本运用基本数据统计算数运算与数据对齐是什么?怎么用?有什么特点?3243.4.1 数据统计数据统计1.sum()函数函数与与cumsum()函数函数sum()函数用于对象求和函数用于对象求和。cumsum()函数用于累计求和,不同函数用于累计求和,不同点在于,点在于,sum()只显示了单列或者单行结果,而只显示了单列或者单行结果,而cumsum()函数函数显示的累计求和的过程。显示的累计求和的过程。3.4.1 数据统计1.sum()函数与cumsum()函253.4.1 数据统计数据统计2.idxmax()函数与函数与idxmin()函数函数这两个函数的功能是返回最大最这两个函数的功能是返回最大最小值的行名称小值的行名称3.4.1 数据统计2.idxmax()函数与idxmin263.4.1 数据统计数据统计3.unique()函数与函数与value_counts()函数函数unique()函数的功能是去除重复的元素,使用函数的功能是去除重复的元素,使用Series对象的对象的unique()函数,函数,返回一个返回一个Numpy数组。数组。value_counts()函数的功能是返回一个函数的功能是返回一个Series对象,对象,index为原为原Series对象中对象中不重复的元素,不重复的元素,values为不重复的元素出现的次数。为不重复的元素出现的次数。3.4.1 数据统计3.unique()函数与value_273.4.1 数据统计数据统计4.isin()函数函数isin()函数可用于筛选数据,判定函数可用于筛选数据,判定Series中的每个元素中是否包含在给定的中的每个元素中是否包含在给定的isin()的参数中,如果包含,则为的参数中,如果包含,则为True,否则为,否则为False。3.4.1 数据统计4.isin()函数isin()函数可283.4.2 算数运算与数据对齐算数运算与数据对齐1.算术运算算术运算对于使用对于使用Numpy数组中的运算符(如数组中的运算符(如+、-、*、/)或者其他的数学函数,)或者其他的数学函数,也适用于也适用于Pandas。3.4.2 算数运算与数据对齐1.算术运算对于使用Nump293.4.2 算数运算与数据对齐算数运算与数据对齐2.数据对齐数据对齐Pandas的数据对齐是数据清洗的重要过程,可以按索引对齐进行运算,的数据对齐是数据清洗的重要过程,可以按索引对齐进行运算,如果没对齐的位置,则补如果没对齐的位置,则补NaN,即空值,在数据的末尾也可以填充,即空值,在数据的末尾也可以填充NaN。对象除了和标量之间可以进行运算,对象和对象之间也可以进行运算,对象除了和标量之间可以进行运算,对象和对象之间也可以进行运算,这样就可能存在没有数据对齐的情况,如果这样就可能存在没有数据对齐的情况,如果index的值没有对齐,则没有的值没有对齐,则没有对齐的元素运算之后的值为对齐的元素运算之后的值为NaN。3.4.2 算数运算与数据对齐2.数据对齐Pandas的数303.5 Pandas使用案例使用案例1.学生成绩数组导入学生成绩数组导入3.5 Pandas使用案例1.学生成绩数组导入313.5 Pandas使用案例使用案例2.总分计算总分计算3.5 Pandas使用案例2.总分计算323.5 Pandas使用案例使用案例3.数据查看数据查看4.求和求和3.5 Pandas使用案例3.数据查看4.求和333.5 Pandas使用案例使用案例5.行标处理行标处理6.导出文件导出文件3.5 Pandas使用案例5.行标处理6.导出文件34Thank You!Thank You!35
展开阅读全文