Python-数据分析之 pandas 初步
pandas
是一个常用的第三方 Python 库,提供快速灵活的数据处理功能,也是进行数据分析的有力工具-
pandas
尤其擅长处理以下数据:以下几种数据尤其适合用
pandas
进行处理:- 多种数据混合的扁平化数据格式,比如 SQL 表和 Excel 电子表格;
- 时间序列数据,不管有序无序;
- 任意带有行列标签的矩阵数据,不管是同种数据类型还是多种数据类型;
- 还有其他任意的统计数据集,不必带标签。
- 实际上
pandas
是术语“panel data”(面板数据)的简写 -
主要数据类型
pandas
中有两个主要的数据类型,一种是 Series,称为“序列”,是一种一维数据结构;另一种是 DataFrame,称为“数据帧”或是“数据框架”,是一种二维数据结构。在pandas
中,我们就是使用这两种主要的数据结构,“喜迎四海宾朋,笑对八方来客”,分分钟处理掉天上地下来的各种数据。其中,Series 内部要求是同种数据,而 DataFrame 则可以使混合数据。更进一步地说,DataFrame 其实就是包含了一至多个 Series。
-
numpy
虽然提供了强大的多维数组供我们进行数据处理,但是这中间有一个要命的问题:维数比较少的时候还好,维数一旦多起来,你还分得清哪个轴代表什么意义吗?呃当然不排除有人可以,但是大多数人肯定是不行的,因为numpy
的每个轴之间其实没有什么本质上的差异,你可以是轴 1,我也可以是轴 1,谁有比谁高贵怎么滴?因此在使用numpy
进行高维数据处理,尤其是当其中每个维度都有特定的意义时,使用numpy
的多维数组就会给使用者造成很大的负担——而这些本来不应该是由使用者负担的。因此
pandas
的优势就体现出来了。pandas
可以为每一列数据打上标签,这样通过标签就可以直接区分开每个轴谁是谁,也可以通过标签获得更具语义性的信息,知道每列数据都是什么、有什么用途。即使是交换了顺序也无所谓,比较在pandas
中,我们可以不再以默认的序号作为索引。 -
Series
Series 实际上是一个带标签的一维数组,数组中的内容可以是任何数据类型。在 Series 中,“带标签的轴”统称为“index(索引)”,类似于我们之前学习的字典数据类型中的“key(关键字)”。
-
创建 Series
创建 Series 最常用的方法就是调用
pd.Series
: -
>>> s = pd.Series(data, index=index)
-
其中,
data
要求是下列数据类型之一:- Python 字典;
- Python 列表;
- N 维数组;
- 标量(即一个数字)。
而参数
index
则应当是一个用来指定轴标签的列表。按照原始数据类型的不同,创建 Series 的方式也分为 4 种:1)用 Python 字典创建;2)用 Python 列表创建;3)用 N 维数组创建;4)用标量创建。