![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=1738841386-plmRQf52d0vwT2EsJkXU3G5s0Ynmqqrj-0-8e83d1d2252943601fd02935ebc901c3)
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=1738841386-ajxx7HrqKDUp2RVBlbhR2vsg7Wt5F3uW-0-97b250441579f6706847a330e524d133)
Pandas操作的第一步一定是导入库,命令为:import pandas as pd。
创建DataFrame最常用的方式是字典+列表,语句很简单,先用花括号{}创建一个字典,然后在其中依次输入每一列的列名及其对应的列值(此处一定要用列表)。这里对应关系重要,列的顺序并不重要。代码示例如下:
![](https://epubservercos.yuewen.com/153811/28613833202733106/epubprivate/OEBPS/Images/27_02.jpg?sign=1738841386-xkeqkdVxUt2MkrsYSiiOmpiZYS1XBxW1-0-e3206a66a5f412403c43d2e2586dd143)
运行结果如下:
![](https://epubservercos.yuewen.com/153811/28613833202733106/epubprivate/OEBPS/Images/28_01.jpg?sign=1738841386-tU92ILMhB4TPrvq6Prqe8u1aGcrSCOvj-0-c8acf3c1ce5bb61f8d42520bbc5266c8)
上面代码的结果对应到Excel表格中,如图2-1所示。值得注意的是,如果我们在创建时不指定index参数,系统会自动生成从0开始的索引。
![](https://epubservercos.yuewen.com/153811/28613833202733106/epubprivate/OEBPS/Images/28_02.jpg?sign=1738841386-zp6IvTtxaErq8tvt0vbKTc9MJfVZGXw4-0-bd03e6be932fe59ec95dc7c39a2255d5)
图2-1 表格三要素样例
还可以通过改变索引、列名和值来控制数据,这和前文讲的表格三要素——列名、索引、值是对应的。
对于Series的创建,在创建好DataFrame之后选择对应的列即可。在上述实例中,选择刚创建好的df1中的工资列作为新的Series:
![](https://epubservercos.yuewen.com/153811/28613833202733106/epubprivate/OEBPS/Images/28_03.jpg?sign=1738841386-knVzBHoy0nqfgvMRgXm7imDMOiD7xuEW-0-09240c8d72572ed99a8cd735756d5a8c)
运行结果如下:
![](https://epubservercos.yuewen.com/153811/28613833202733106/epubprivate/OEBPS/Images/28_04.jpg?sign=1738841386-vhEJNIwLuVYSxe5DHFh6L2zkndGSMgNW-0-0d145bd63f15bbc5e19455b4169d6b68)
也可以通过指定值和索引的方式来单独创建一列:
![](https://epubservercos.yuewen.com/153811/28613833202733106/epubprivate/OEBPS/Images/28_05.jpg?sign=1738841386-wIXBUc1JPeXKR2qd61Tx4oipUfxP62vS-0-96549ab6c7d0f9176574280baa0cbbf7)
运行结果如下:
![](https://epubservercos.yuewen.com/153811/28613833202733106/epubprivate/OEBPS/Images/28_06.jpg?sign=1738841386-uqrtUtYqPD2lcWVMhvodpBjcL2GDqiy8-0-8a11d99776121d36d0c05f5f661d7d34)
![](https://epubservercos.yuewen.com/153811/28613833202733106/epubprivate/OEBPS/Images/29_01.jpg?sign=1738841386-KIFmYPVRLvk8JU1lQDgxT7uxkxEWOyxv-0-f1857964e9c63faf8005fee8c578e013)
DataFrame和Series的创建非常便捷,不过在实际运用中,单独创建数据的场景较少,更多是直接读取现有数据源。