Python数据分析从入门到精通
上QQ阅读APP看书,第一时间看更新

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 重要函数