引言
我们现在已经基本熟悉了pandas库以及它所提供的用于数据分析的基础功能,也知道了DataFrame和Series是这个库的核心,数据处理、计算和分析都是围绕他们展开的。
本节将学习pandas从多种存储媒介(比如文件和数据库)读取数据的工具,还将学到直接将不同的数据结构写入不同格式文件的方法,而无需过多考虑所使用的技术。
本节的主要内容为pandas的多种I/O API函数,它们为大多数常用格式的数据作为DataFrame对象进行读写提供了很大便利。你首先会学会文本文件的读写,随后再逐步过渡到更加复杂的二进制文件。
最后我们会讲解SQL和NoSQL常用数据库的连接方法,我们用几个例子来说明如何直接把DataFrame中的数据存储到数据库中。同时,我们还会介绍如何从数据库读取数据,存储为DataFrame对象,并对其进行检索。
I/O API工具
pandas是数据分析专用库,因此如你所料,它主要关注的是数据计算和处理。此外,从外部文件读写数据也被视作数据处理的一部分。实际上正如后面会讲到的,即使在这个阶段,你也可以对数据做一定处理,以为接下来对数据做进一步分析做好准备。
因此,数据读写对数据分析很重要,于是pandas库必须得为此提供专门的工具——一组被称为I/O API的函数。这些函数分为完全对称的两大类:读取函数和写入函数。
CSV和文本文件
多年以来,人们已习惯于文本文件的读写,特别是列表形式的数据。如果文件每一行的多个元素是用逗号隔开的,则这种格式叫做CSV,这可能是最广为人知和最受欢迎的格式。
其他由空格或制表符分隔开的列表数据通常存储在各种类型的文本文件中(扩展名一般为.txt)。因此这种文件类型是最常见的数据源,它易于转录和解释。pandas的下列函数专门用来处理这种文件类型:
read_csv 2.read_table 3.to_csv
读取CSV或文本文件中的数据
根据一般经验,对数据分析人员来说,最常执行的操作是从CSV文件或其他类型的文本文件中读取数据。为了弄清楚pandas处理这类数据的方法,我们在工作目录下创建了一个短小的CSV文件,将其保存为myCSV_01.csv,代码如下所示:
这个文件以逗号为分隔符,因此可以使用read_csv( )函数读取它的内容,同时将其转换为DataFrame对象。
如你所见,读取CSV文件中的数据其实很简单。CSV文件中的数据为列表数据,位于不同列的元素用逗号隔开。但是既然CSV文件被视作文本文件,你还可以使用read_table( )函数,但是得指定分隔符。
读写HTML文件
pandas提供的两个函数用于读写I/O API函数:1.read_html( )函数;2.to_html( )函数。
这两个函数非常有用。把DataFrame等复杂的数据结构转换成为HTML表格很简单,无需编写一长串HTML代码就能实现。pandas这方面的能力非常强大,如果想从事Web开发方面的工作,该功能能够带来很多便捷。
逆操作也很有用,因为如今主要的数据源为因特网。网上的很多数据并不总是拿来就可以用的。它们都会存储在TXT或CSV文件中。这些数据是网页文本的一部分,因此实现一个读取网页数据的函数非常有必要。
读取网页数据这种操作被称为网页抓取,应用极广。它逐渐演变成数据分析过程中的一项基础操作,被整合到了数据分析的第一步——数据挖掘和数据准备。