![Python数据分析从入门到精通](https://wfqqreader-1252317822.image.myqcloud.com/cover/705/33643705/b_33643705.jpg)
4.1 使用tablib模块
![](https://epubservercos.yuewen.com/3F131D/17977545801605906/epubprivate/OEBPS/Images/95_01.jpg?sign=1739348726-QxRaLFOgSYRY00Mtv9N22mVSz9NlZucX-0-f017d3facc70fc07a0d66f6b600995f3)
在Python程序中可使用第三方模块tablib将数据导出为不同的文件格式,包括Excel、JSON、HTML、Yaml、CSV和TSV等格式。在使用模块tablib之前,需要先通过如下命令安装tablib。
![](https://epubservercos.yuewen.com/3F131D/17977545801605906/epubprivate/OEBPS/Images/95_02.jpg?sign=1739348726-M3ZOSZShahLJDUk8ZQryAxcCRgE1Y36g-0-fac2d28dd2aa31868a4e2b3f3b183909)
在接下来的内容中,将详细讲解使用tablib模块的知识。
4.1.1 基本用法
1.创建Dataset(数据集)
在tablib模块中,使用tablib.Dataset创建一个简单的数据集对象实例:
![](https://epubservercos.yuewen.com/3F131D/17977545801605906/epubprivate/OEBPS/Images/95_03.jpg?sign=1739348726-UqqsbDte5OCgu3gFyXpK70vHGTNaRR0p-0-4b2db0734ca87bac2726236179577bea)
接下来就可以填充数据集对象和数据。
2.添加Rows(行)
若想收集一个简单的人名列表,需输入下面的代码。
![](https://epubservercos.yuewen.com/3F131D/17977545801605906/epubprivate/OEBPS/Images/95_04.jpg?sign=1739348726-JKBqUovQitYZPrzdgzPvmieKNBZK9AG1-0-9017b71520caa8f2ce6a4d537dac39e0)
![](https://epubservercos.yuewen.com/3F131D/17977545801605906/epubprivate/OEBPS/Images/96_01.jpg?sign=1739348726-gHeSC4wfcAY97fFQd2S7m26nO26LD3YX-0-1773d790a66387106ea24b54d3a73bf9)
在Python中可以通过下面的代码获取人名。
![](https://epubservercos.yuewen.com/3F131D/17977545801605906/epubprivate/OEBPS/Images/96_02.jpg?sign=1739348726-WSz0lPOYWlDezmk0lwyCnMFFQhrvMBmG-0-b438225dec0a1c010383627dea50f5bd)
3.添加Headers(标题)
通过下面的代码可以在数据集中添加标题。
![](https://epubservercos.yuewen.com/3F131D/17977545801605906/epubprivate/OEBPS/Images/96_03.jpg?sign=1739348726-clTnkZL3FB05UrFu6vJlQE5cLAf9dFyS-0-191224ac3c8a4805083680b21a616bdb)
通过下面的代码获取数据集信息。
![](https://epubservercos.yuewen.com/3F131D/17977545801605906/epubprivate/OEBPS/Images/96_04.jpg?sign=1739348726-LHmtBODVGUp5ceRNjsvEoO7FHEd2XwOt-0-24a542928bbc48fe968d386b69443f0c)
4.添加Columns(列)
在数据集中可以继续添加列,如下面的代码。
![](https://epubservercos.yuewen.com/3F131D/17977545801605906/epubprivate/OEBPS/Images/96_05.jpg?sign=1739348726-z2E45JxVf9wypwZNwPsJ64H8cJWAjbVs-0-cb110faa022e4fe90cee671cdd4e71f4)
通过下面的代码获取数据集信息。
![](https://epubservercos.yuewen.com/3F131D/17977545801605906/epubprivate/OEBPS/Images/96_06.jpg?sign=1739348726-S0zhDkdQTsHhaR96RnOJUkPYHUHIm0ex-0-d445730370eeaae799adfa3ca866587d)
5.导入数据
在创建tablib.Dataset对象实例后,可以直接导入已经存在的数据集,下面是导入CSV文件数据的代码。
![](https://epubservercos.yuewen.com/3F131D/17977545801605906/epubprivate/OEBPS/Images/96_07.jpg?sign=1739348726-Pe2J8qxRWo9p5V5Ikwz7ULwQkZeE541l-0-28955eb7420210932b069139c861d070)
在tablib模块中一旦需要导入数据,只要具备适当的格式化程序导入窗口,就可以从各种不同的文件类型导入数据。
6.导出数据
Tablib模块的主要功能是将数据导出为不同类型的文件,例如下面的代码将我们前面创建的数据集导出为CSV文件格式。
![](https://epubservercos.yuewen.com/3F131D/17977545801605906/epubprivate/OEBPS/Images/96_08.jpg?sign=1739348726-lqepYgnwubAqYsr5hDxA9bzcRgegGWIL-0-f02142d8697238bb05967ef0f3c82fec)
![](https://epubservercos.yuewen.com/3F131D/17977545801605906/epubprivate/OEBPS/Images/97_01.jpg?sign=1739348726-oBtSfWTSd01wqK1UGOEx6xqhTd7IKhgO-0-b9b0fd9676e97517521892f89697d9e2)
通过下面的代码将数据导出为JSON文件格式。
![](https://epubservercos.yuewen.com/3F131D/17977545801605906/epubprivate/OEBPS/Images/97_02.jpg?sign=1739348726-pvdoJ7sjxFwp5or2uHSW7JOriti2FYcp-0-6653c90d8ab395da256109fb28010407)
通过下面的代码将数据导出为YAML文件格式。
![](https://epubservercos.yuewen.com/3F131D/17977545801605906/epubprivate/OEBPS/Images/97_03.jpg?sign=1739348726-7aTtPWffmLKs0p9rw8aR6U8IZkS1yobz-0-d1ab6313d85e2fdf45912cdf7ee0948e)
通过下面的代码将数据导出为Excel文件格式。
![](https://epubservercos.yuewen.com/3F131D/17977545801605906/epubprivate/OEBPS/Images/97_04.jpg?sign=1739348726-Qaj1FbSP7QlpuCilbpI2CjIgsnOrneIu-0-7f23aa7a004ae6004e5d8af2db64aeca)
4.1.2 操作数据集中的指定行和列
在下面的实例文件Tablib01.py中,演示了使用tablib模块操作数据集中的指定行和列的过程。
源码路径:daima\4\4-1\Tablib01.py
![](https://epubservercos.yuewen.com/3F131D/17977545801605906/epubprivate/OEBPS/Images/97_05.jpg?sign=1739348726-hZrCzATmOOMft9tjtWvLlcUSduZagmri-0-79b30de46d511d4886818ae3d5ce1095)
执行后输出:
![](https://epubservercos.yuewen.com/3F131D/17977545801605906/epubprivate/OEBPS/Images/97_06.jpg?sign=1739348726-FrlQgAKJKlYCaEHzH099ENDj3hkw1fnH-0-aa2af3924dca1665d55bda5d1cb80d20)
![](https://epubservercos.yuewen.com/3F131D/17977545801605906/epubprivate/OEBPS/Images/98_01.jpg?sign=1739348726-61ieHfpWNa6NUlgJQMPdtcsSkScuybnq-0-ccd468747d6965528b9336690f3fe3af)
4.1.3 删除并导出不同格式的数据
在下面的实例文件Tablib02.py中,演示了使用tablib模块删除数据集中指定数据,并将数据导出为不同文件格式的过程。
源码路径:daima\4\4-1\Tablib02.py
![](https://epubservercos.yuewen.com/3F131D/17977545801605906/epubprivate/OEBPS/Images/98_02.jpg?sign=1739348726-jD94hC0TBLfUOrwAlCzoecYhF6HpBvWP-0-da036c93c85b002de716647aede25c2e)
执行后输出:
![](https://epubservercos.yuewen.com/3F131D/17977545801605906/epubprivate/OEBPS/Images/98_03.jpg?sign=1739348726-XvdUWV8Otg9XCIn2PMdqRJKtyJcv5GNs-0-e5512c63c3d47b1e8bea3fa188190395)
![](https://epubservercos.yuewen.com/3F131D/17977545801605906/epubprivate/OEBPS/Images/99_01.jpg?sign=1739348726-oOZWfhi08oYoQGuyYaPkt8CGbz1uIYqW-0-50161f06a5f28b3f820a3da2b8ce5431)
4.1.4 生成一个Excel文件
在下面的实例文件Tablib03.py中,演示了将tablib数据集导出到新建Excel文件的过程。
源码路径:daima\4\4-1\Tablib03.py
![](https://epubservercos.yuewen.com/3F131D/17977545801605906/epubprivate/OEBPS/Images/99_02.jpg?sign=1739348726-RNMtey1xIm4fmKZCuBE0CEkQstejSXMk-0-0088042469948b72f821a260dcacbd95)
执行后创建一个Excel文件excel.xls,里面填充的是数据集中的数据,如图4-1所示。
![](https://epubservercos.yuewen.com/3F131D/17977545801605906/epubprivate/OEBPS/Images/100_01.jpg?sign=1739348726-jujVPL7zOsCZ7G3Wn2P9qszhqkDUBVww-0-6f588b62cffc0f4d701944d8fa35ee17)
图4-1 创建的Excel文件
4.1.5 处理多个数据集
在现实应用中,有时需要在表格中处理多个数据集集合,如将多个数据集数据导到一个Excel文件中,这时可使用tablib模块中的Databook实现。如在下面的实例文件Tablib04.py中,不但演示了增加、删除数据集数据的方法,而且演示了将多个tablib数据集导出到Excel文件的过程。
源码路径:daima\4\4-1\Tablib04.py
![](https://epubservercos.yuewen.com/3F131D/17977545801605906/epubprivate/OEBPS/Images/100_02.jpg?sign=1739348726-y7TT6nVsCeenoql0g6o9i7Hze9Y1LaEo-0-52301addc6d270583eb9145e2b444897)
![](https://epubservercos.yuewen.com/3F131D/17977545801605906/epubprivate/OEBPS/Images/101_01.jpg?sign=1739348726-8UbrObBIrLnISzNSXpPmyxD4vzXP6oiP-0-f6b636dc0d4e18e6ae32b9a7c3a31afa)
执行后输出:
![](https://epubservercos.yuewen.com/3F131D/17977545801605906/epubprivate/OEBPS/Images/101_02.jpg?sign=1739348726-ybpUK2YtRlrPSDTM5pvaCDAN2jDJTx61-0-e05867df4f5f83d78c516690030f5bc0)
![](https://epubservercos.yuewen.com/3F131D/17977545801605906/epubprivate/OEBPS/Images/102_01.jpg?sign=1739348726-YolFysCsR2oIDP5Xg8dghH2qrLeAq8vB-0-4778518db382f0b08caa82c265f46b9b)
执行后创建Excel文件mydata.xls,其中保存了从数据集中导出的数据,如图4-2所示。
![](https://epubservercos.yuewen.com/3F131D/17977545801605906/epubprivate/OEBPS/Images/103_01.jpg?sign=1739348726-2CFI3DIh6bY1nWWp5FHffGevbl3TSigr-0-76af8365cf2e5de63493a6fa722ee1eb)
图4-2 Excel文件中的数据
4.1.6 使用标签过滤数据
在使用tablib数据集时,可将一个作为参数的标签添加到指定行。在后面的程序中可基于任意条件的数据通过这个标签筛选数据集。如在下面的实例文件Tablib05.py中,演示了使用标签过滤tablib数据集的过程。
源码路径:daima\4\4-1\Tablib05.py
![](https://epubservercos.yuewen.com/3F131D/17977545801605906/epubprivate/OEBPS/Images/103_02.jpg?sign=1739348726-PVxsIoThcXQtsoQmskYZVahHMaoDFzrJ-0-ee773f2a9ce776929da8f33e71cfec1b)
执行后输出:
![](https://epubservercos.yuewen.com/3F131D/17977545801605906/epubprivate/OEBPS/Images/103_03.jpg?sign=1739348726-JMjCj9DcvoA84HCCysqDHlB0bZTf1Mqd-0-a347bce00c5311e60a44d49c90ac9a1d)
4.1.7 分离表格中的数据
当将tablib数据导出到某个格式的文件中时,有时需要将多种数据集对象进行分类。如在下面的实例文件Tablib06.py中,演示了将两组数据分离导入Excel文件的过程。
源码路径:daima\4\4-1\Tablib06.py
![](https://epubservercos.yuewen.com/3F131D/17977545801605906/epubprivate/OEBPS/Images/103_04.jpg?sign=1739348726-C3BAZpek5HTqDumrrgNozAK3CoASQofI-0-be97fdde2156afe12add27c604482ca8)
![](https://epubservercos.yuewen.com/3F131D/17977545801605906/epubprivate/OEBPS/Images/104_01.jpg?sign=1739348726-C4GFzeb9BSXjA4tnidNRpVsDo3nS6wr0-0-58af9fe57190ae3b2463376ebe6691ce)
执行后会将Tablib分类别导入到Excel文件中,如图4-3所示。
![](https://epubservercos.yuewen.com/3F131D/17977545801605906/epubprivate/OEBPS/Images/104_02.jpg?sign=1739348726-dQAjmq2TyWJU9lcw7ihI2Q3Z4qfXQsIw-0-93ab6dad5bb8fcd57e2082621bc7e0b1)
图4-3 分离的数据