![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=1739284440-y6z0XMXQkSMyeMSe21l4igd8FGmVtANQ-0-53c12cff8d7536c8dcd703529068ac65)
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=1739284440-6D56MR7lVToWFLkCUAVxHlnTI8PH9UKl-0-f9f7274a8b5911531c15bd6201c0dc66)
Pandas操作的第一步一定是导入库,命令为:import pandas as pd。
创建DataFrame最常用的方式是字典+列表,语句很简单,先用花括号{}创建一个字典,然后在其中依次输入每一列的列名及其对应的列值(此处一定要用列表)。这里对应关系重要,列的顺序并不重要。代码示例如下:
![](https://epubservercos.yuewen.com/153811/28613833202733106/epubprivate/OEBPS/Images/27_02.jpg?sign=1739284440-33RUKbxG7DStevQvqTXfaVMYC7DV174j-0-445e82da84ad5962562d09c551440b36)
运行结果如下:
![](https://epubservercos.yuewen.com/153811/28613833202733106/epubprivate/OEBPS/Images/28_01.jpg?sign=1739284440-h3caxUFTe3KMUsvJakc8xuaHHrDwlfzO-0-36332939eea485c15b348034d3e100fb)
上面代码的结果对应到Excel表格中,如图2-1所示。值得注意的是,如果我们在创建时不指定index参数,系统会自动生成从0开始的索引。
![](https://epubservercos.yuewen.com/153811/28613833202733106/epubprivate/OEBPS/Images/28_02.jpg?sign=1739284440-RMJgr4vDS08i5d4XPPDEN33KDTGuSIng-0-f2a6b04edd6c2fca254c131993a98298)
图2-1 表格三要素样例
还可以通过改变索引、列名和值来控制数据,这和前文讲的表格三要素——列名、索引、值是对应的。
对于Series的创建,在创建好DataFrame之后选择对应的列即可。在上述实例中,选择刚创建好的df1中的工资列作为新的Series:
![](https://epubservercos.yuewen.com/153811/28613833202733106/epubprivate/OEBPS/Images/28_03.jpg?sign=1739284440-7Oeb86idZNP6iGejCTgRcYByfivCmaY5-0-f75b67ea7d46d377e8a5fb8fb3fdeda5)
运行结果如下:
![](https://epubservercos.yuewen.com/153811/28613833202733106/epubprivate/OEBPS/Images/28_04.jpg?sign=1739284440-3roLoKtPRRELePRJArsG9cOK93pFRUQe-0-4846d46d45d628c240d642dd104aeba1)
也可以通过指定值和索引的方式来单独创建一列:
![](https://epubservercos.yuewen.com/153811/28613833202733106/epubprivate/OEBPS/Images/28_05.jpg?sign=1739284440-sF3pb8Q9Ys4yY121EmyTCR1Hr1e913M8-0-59cf12bcb8ad03fa7ac67ad6a5d4215a)
运行结果如下:
![](https://epubservercos.yuewen.com/153811/28613833202733106/epubprivate/OEBPS/Images/28_06.jpg?sign=1739284440-hsKPaSJ2MuGipGhT2SVhBBlFX0NqhU9j-0-4de835e430b6ef31a16bb057ce918bf0)
![](https://epubservercos.yuewen.com/153811/28613833202733106/epubprivate/OEBPS/Images/29_01.jpg?sign=1739284440-tlCsU9nMj3omBdMB3HRagNQ6kICUSms8-0-faa9166cf8dcab1878f711c016ce6791)
DataFrame和Series的创建非常便捷,不过在实际运用中,单独创建数据的场景较少,更多是直接读取现有数据源。