目录
2.1pandans数据结构
pandas又两个基本得数据结构:Series和Dataframe
2.1.1创建Series数据
Series数据结构类似于一维数组,但它是由一组数据(各种Numpy数据类型)和一组 对应得索引组成。通过一组列表数据即可产生最简单得Series数据,如图
Series数据:索引在左边,值在右边。可以看出,如果没有指定一组数据作为索引的话,Series数据会以0到N-1(N为数据的长度)作为索引,也可以通过指定索引的方式来创建Series数据,如图
Series有values和index属性,可返还值数据的数组形式和索引对象,如图
Series与普通的一维数组相比,其具有索引对象,可通过索引来获取Series的单个或一组数值,如图
Series运算都会保留索引和值之间的链接,如图
Series数据中的索引和值一一对应,类似于Python字典数据,所以也可以通过字典数据来创建Series,如图
由于字典结构是无序的,因此返回的Series也是无序的,这里依旧可以通过index指定索引的排列顺序,如图
Series数据和索引都有name属性,这样我们可以给Series定义名称,让Series具有可读性
2.1.2创建DaraFrame属性
DataFrame数据是Python数据分析最常用的数据,无论是创建的数据或外部数据,我们首先想到的都是如何将其转换为DataFrame数据,原因是DataFrame数据为表格型数据。说道表格型数据,多数人想到的可能是Excel表格,本节将会把DataFrame与Excel两种数据进行对比。
在Excel中,在单元格中输入数据即可创建一张表格。对于DataFrame数据而言,需要用代码实现,创建DataFrame数据的办法有很多,最常用的是传入数组、列表、或元祖组成的字典。如图
返回的数据如上图,DataFrame数据有行索引和列索引,行索引类似于Excel表格中每行的编号(没有指定索引的情况下),列索引类似于Excel表格的列名(通常也可称为字段)。
由于字典是无序的,因此可以通过columns指定列索引的排列顺序。如图
当没有指定索引的情况下,会使用0到N-1(N为数据的长度)作为行索引,这里也可以使用其他数据作为索引,如图
使用嵌套字典的数据也可以创建DataFrame数据,如图
下表提供列部分常用的为创建DataFrame数据可传入的数据类型
类型 | 使用说明 |
二维ndarray | 数据矩阵,可传入行列索引 |
由数组、列表或元组组成的字典 | |
由Series组成的字典 | 每个Series为一列,Series索引合并为行索引 |
嵌套字典 | |
字典或Series列表 | 各项成为DataFrame一行,字典键或Series索引成为DataFrame列索 |
由列表或元组组成的列表 | ‘’引类似于”二维数组’ |
如果df为某班级学生的信息,通过设置DataFrame的index和columns的name属性,可以将这些信息显示出来,如图
通过Values属性可以将DataFrame数组转换为二维数组,如图
注:各列数据类型不同,返回的数组会兼顾所有的数据类型
2.1.3索引对象
Series的索引和DataFrame的行和列索引都是索引对象,用于负责管理轴标签和元数据,如图
索引对象是不可以修改的,如果修改就会报错,如图
索引对象类似于数组数据,其功能也类似于一个固定大小的合计,如图
2.2pandas索引操作
本节将针对Series和DataFrame数据,讲解Series和DataFrame索引操作的方法,通过将他们与Excel数据的类比,讲解DataFrame数据的选取与操作。
2.2.1重新索引
前面说过,索引对象是无法进行修改的,本节所说的重新索引并不是给索引重新命名,而是多索引重新排序,如果某个索引值不存在的话,就会引入缺失值,首先来看下Series重新排序后的索引,如图
对于DataFrame数据来说,行和列索引都是可以重新索引的,如图
重新索引列需要使用columns关键字,如图