
3.3 DataFrame对象
DataFrame是Pandas库中的一种数据结构,它是由多种类型的列组成的二维表数据结构,类似于Excel、SQL或Series对象构成的字典。DataFrame是最常用的Pandas对象,它与Series对象一样支持多种类型的数据。
3.3.1 图解DataFrame对象
DataFrame是一个二维表数据结构,由行、列数据组成的表格。DataFrame既有行索引也有列索引,它可以看作是由Series对象组成的字典,不过这些Series对象共用一个索引,如图3.11所示。

图3.11 DataFrame结构
处理DataFrame表格数据时,用index表示行或用columns表示列更直观。用这种方式迭代DataFrame的列,代码更易读懂。
【示例09】 遍历DataFrame数据。(示例位置:资源包\MR\Code\03\09)
遍历DataFrame数据,输出成绩表的每一列数据,程序代码如下:

运行程序,控制台输出结果如下:

从运行结果得知,上述代码返回的其实是Series,如图3.12所示。Pandas之所以提供多种数据结构,其目的就是为了代码易读、操作更加方便。

图3.12 Series对象
3.3.2 创建一个DataFrame对象
创建DataFrame主要使用Pandas的DataFrame()方法,语法如下:
pandas.DataFrame(data,index,columns,dtype,copy)
参数说明:
data:表示数据,可以是ndarray数组、Series对象、列表、字典等。
index:表示行标签(索引)。
columns:列标签(索引)。
dtype:每一列数据的数据类型,其与Python数据类型有所不同,如object数据类型对应的是Python的字符型。表3.1为Pandas数据类型与Python数据类型的对应表。
表3.1 数据类型对应表

copy:用于复制数据。
返回值:DataFrame。
下面通过两种方法来创建DataFrame,即通过二维数组创建和通过字典创建。
1.通过二维数组创建DataFrame
【示例10】 通过二维数组创建成绩表。(示例位置:资源包\MR\Code\03\10)
通过二维数组创建成绩表,包括语文、数学和英语,程序代码如下:

运行程序,控制台输出结果如下:

2.通过字典创建DataFrame
通过字典创建DataFrame,需要注意:字典中的value值只能是一维数组或单个的简单数据类型,如果是数组,要求所有数组长度一致;如果是单个数据,则每行都添加相同数据。
【示例11】 通过字典创建成绩表。(示例位置:资源包\MR\Code\03\11)
通过字典创建成绩表,包括语文、数学、英语和班级,程序代码如下:

运行程序,控制台输出结果如下:

上述代码中,“班级”的value值是一个单个数据,所以每一行都添加了相同的数据“高一7班”。
3.3.3 DataFrame重要属性和函数
DataFrame是Pandas一个重要的对象,它的属性和函数很多,下面先简单了解DataFrame的几个重要属性和函数。重要属性介绍如表3.2所示,重要函数介绍如表3.3所示。
表3.2 重要属性

表3.3 重要函数
