2.1 数据结构概述

在本节,我们将了解基础的数据和数据结构知识,进而理解Pandas是怎样将现实世界中的数据映射到它的体系中的。

2.1.1 什么是数据

数据(Data)是我们对客观世界的记录,而记录的形式是我们发明的记录符号和记录载体。记录符号包括数字、符号、图像、语音、视频等,载体包括石刻、书籍、录像带以及我们现在广泛使用的电脑、手机等智能计算设备。

这些最原始的数据信息是人们在生活和社会实践中采集的,往往需要将数据转换为有限的数据类型,并且在一个数据列中是同构的(Homogeneous),即数据类型相同。比如,一份气象数据包含了日期、城市、平均气温,平均气温必须全是数字,单位为摄氏度,不能出现如下数据形式:

26.2, 25.6, 热, 比昨天凉快

针对异构(Heterogeneous)数据,我们需要进行一些技术或者业务上的转换使其一致,才能进行下一步的数据分析。

2.1.2 什么是数据结构

数据结构(Data structure)是组织数据、存储数据的方式。在计算机中,常见的数据结构有栈(Stack)、队列(Queue)、数组(Array)、链表(Linked List)、树(Tree)、图(Graph)等。我们日常接触最多也是数据分析中最常用的结构是数组。

数组由相同类型元素的集合组成,对每一个元素分配一个存储空间,这些存储空间是连续的。每个空间会有一个索引(index)来标识元素的存储位置。类似于Excel表格,列方向上用数字作为行号,即索引,可以准确找到元素。

现实数据往往会由多个数组组成,它们共用同一个行索引,组成了二维数组,对应于数学中的矩阵概念。这类似于Excel表格中列方向上用字母来表示一个数组,如图2-1所示。可以利用线性代数中矩阵的性质和计算方法对数据进行处理和计算。

042-1

图2-1 Excel中的行编号和列编号

2.1.3 小结

数据结构就是把数据组织到一起的形式,计算机为了反映对客观世界的观察,设计了许多数据组织形式,但在我们日常的数据分析中最常用的就是类似于Excel的二维数组。在将业务问题数据化记录时,需要依照二维数组的形式进行存储,这有利于我们理解,也方便我们使用数学和技术工具进行处理和分析。接下来,我们将通过了解Python层面的数据结构以及Pandas的基础——NumPy的数据结构,一步步理解怎样将二维数组加载、存储到Pandas中。