Pandas 读写sqlite数据,本章将学习使用python内置的SQLite数据库sqlite3。SQLite3工具实现了简单、轻量级的DBMS SQL,因此可以内置于用python语言实现的任何应用。若想使用数据库的所有功能而又不想安装真正的数据库,这个工具就是最佳选择。若想在使用真正的数据库之前练习数据库操作,或在单一程序中使用数据库存储数据而无需考虑接口,SQLite3都是不错的选择。
使用Pandas库提供的I/O API
如下所示,创建一个DataFrame
对象,我们将用它在SQLite3数据库新建一张表。如上章所述,使用create_engine()
连接sqlite3数据库,再使用to_sql()
转换为数据库表,如下所示:
输出结果如下:
反之,读取数据库,则需要使用read_sql()
函数,参数为表名和engine
实例,如下所示:
输出结果如下:
如上所示,由于pandas库提供了I/O API,数据库写操作也变得非常简单。
不使用Pandas库提供的I/O API
我们尝试不使用I/O API的情况下,应该如何实现相同的操作,这样可以让我们理解为什么pandas是读写数据库的好工具。
首先,连接数据库,创建数据表,正确定义数据类型,数据类型应与要加载的数据对得上。
输出结果如下:
下面从数据库查找刚才插入的数据,可以使用SQL SELECT语句,如下所示:
输出结果如下:
把元组列表传给DataFrame的构造函数,如需要列表名称,可以用游标的description
属性来获取,如下所示:
输出结果如下:
如上所示,不使用pandas库I/O API也可以达到目的,可是操作起来就太费劲啦。