![Python电商数据分析实战](https://wfqqreader-1252317822.image.myqcloud.com/cover/541/48899541/b_48899541.jpg)
2.1 Pandas的两大数据结构
2.1.1 初识Pandas
首先,我们从Pandas的核心数据结构讲起。Pandas主要有两种类型的数据结构,分别是Series和DataFrame。这两种数据结构像两个可塑性极强的容器,能把遇到的各类数据都装进去,并按照容器的规则对数据进行高效处理。
为了便于理解,这里拿Excel表格来做类比,如表2-1所示。
表2-1 Excel类比样例表
![](https://epubservercos.yuewen.com/153811/28613833202733106/epubprivate/OEBPS/Images/26_01.jpg?sign=1739133910-9WA9wI56N5XplFw7jqD9DBRhwSwXJWxr-0-b9a0c6469592c93dc4f413c17399b9a8)
Series可以看作表中的某一列,这里的语文、数学、英语成绩对应的列都是一个Series。DataFrame则是整张数据表,由多列构成。Pandas的几乎所有操作都是基于这些列和表进行的。下面分别认识一下Series和DataFrame。
2.1.2 Series和DataFrame
1.表格的三要素
Series和DataFrame的存在是为了更有效率地容纳和处理数据。实际应用中,我们遇到的大部分数据是以表格形式存在的,而在处理的时候往往以列的方式来进行。
在介绍如何创建数据之前,先明确表格的基本要素,能够帮助我们更好地理解Series和DataFrame的特征与原理,知其然并知其所以然,更快地抓住重点。
想象一下,现在有一张数据表,我们需要知道哪些基本信息才能随心所欲地操作它?
1)想要自由地操作任意一列数据,首先要知道每一列数据叫什么,即列名。
2)知道数据的总行数及每一行对应的序号也很重要,毕竟处理10条数据与处理100万条数据需要的资源和工具是不一样的。
3)知道表格里的每个值具体是多少,这对于我们的统计分析结果来说至关重要。
总结一下,表格的三要素如下。
❑列名(column):对应着列名,指定操作哪列数据。
❑索引(index):代表索引,告诉我们有多少行数据,索引默认从0开始。
❑值(value):指代具体的数据值。
这3个基本要素贯穿Pandas数据分析的始终,作用是让我们更加灵活地处理和分析数据。
接下来我们动手在Pandas中尝试创建数据。
2.创建DataFrame和Series
如果想在Pandas中创建一张如表2-2所示的表,应该如何操作?
表2-2 创建表样例
![](https://epubservercos.yuewen.com/153811/28613833202733106/epubprivate/OEBPS/Images/27_01.jpg?sign=1739133910-nn83hXeaQdeBfakIB2N9oSmsMuEtsux9-0-2508dab8846203ee050a9d3bac292079)
Pandas操作的第一步一定是导入库,命令为:import pandas as pd。
创建DataFrame最常用的方式是字典+列表,语句很简单,先用花括号{}创建一个字典,然后在其中依次输入每一列的列名及其对应的列值(此处一定要用列表)。这里对应关系重要,列的顺序并不重要。代码示例如下:
![](https://epubservercos.yuewen.com/153811/28613833202733106/epubprivate/OEBPS/Images/27_02.jpg?sign=1739133910-uk7MClBGhZrVajRvFUwIe7NF5C4cbabK-0-65c9ffb23d0c6c6f596a569f0e6e80ba)
运行结果如下:
![](https://epubservercos.yuewen.com/153811/28613833202733106/epubprivate/OEBPS/Images/28_01.jpg?sign=1739133910-DGxR1qchX029EBGgemfylH27yxtO3smr-0-bebccde00feda46dbd3586c98e5c467e)
上面代码的结果对应到Excel表格中,如图2-1所示。值得注意的是,如果我们在创建时不指定index参数,系统会自动生成从0开始的索引。
![](https://epubservercos.yuewen.com/153811/28613833202733106/epubprivate/OEBPS/Images/28_02.jpg?sign=1739133910-LDfpIuzD1nTqoyuXtOoZ5ELX5sndoqO6-0-02d608fd7b881719d9db82092e7c69bb)
图2-1 表格三要素样例
还可以通过改变索引、列名和值来控制数据,这和前文讲的表格三要素——列名、索引、值是对应的。
对于Series的创建,在创建好DataFrame之后选择对应的列即可。在上述实例中,选择刚创建好的df1中的工资列作为新的Series:
![](https://epubservercos.yuewen.com/153811/28613833202733106/epubprivate/OEBPS/Images/28_03.jpg?sign=1739133910-0LYx70DcdZoCTcNMzthUz6QcJep7PSA6-0-d1a858cd40c7959eab281a87c22dc6a3)
运行结果如下:
![](https://epubservercos.yuewen.com/153811/28613833202733106/epubprivate/OEBPS/Images/28_04.jpg?sign=1739133910-NpwEp64G3rnhomzp35Qaqzme9Zbkcwh7-0-b015031d825860514743c27c1c9dfe9c)
也可以通过指定值和索引的方式来单独创建一列:
![](https://epubservercos.yuewen.com/153811/28613833202733106/epubprivate/OEBPS/Images/28_05.jpg?sign=1739133910-QDXgPQ7Mqievj9LK2HqG9tqNZ6I0Cctr-0-1a763f04a349c324dab634f9a15ae725)
运行结果如下:
![](https://epubservercos.yuewen.com/153811/28613833202733106/epubprivate/OEBPS/Images/28_06.jpg?sign=1739133910-vJgJve6vT29oRTG4XumF64ijUb6d5IkL-0-7afe3f35cadb7d09f0d563276aad1441)
![](https://epubservercos.yuewen.com/153811/28613833202733106/epubprivate/OEBPS/Images/29_01.jpg?sign=1739133910-PtNP8wkQ53My5CUdxNcIuJw2A1eKTBlr-0-9e0b270d89f741eb671c1753e6810ee0)
DataFrame和Series的创建非常便捷,不过在实际运用中,单独创建数据的场景较少,更多是直接读取现有数据源。