Pandas 读写sqlite数据库

发布时间 2023-04-18 16:57:06作者: 木凌云

SQLite3工具实现了简单、轻量级的DBMS SQL,因此可以内置于用python语言实现的任何应用。若想使用数据库的所有功能而又不想安装真正的数据库,这个工具就是最佳选择。若想在使用真正的数据库之前练习数据库操作,或在单一程序中使用数据库存储数据而无需考虑接口,SQLite3都是不错的选择。

使用Pandas库提供的I/O API

如下所示,创建一个DataFrame对象,我们将用它在SQLite3数据库新建一张表。如上章所述,使用create_engine()连接sqlite3数据库,再使用to_sql()转换为数据库表,如下所示:

import pandas as pd
import numpy as np
from sqlalchemy import create_engine

frame = pd.DataFrame(np.arange(20).reshape(4,5),
                     columns=['white', 'red', 'blue', 'black', 'green'])
engine= create_engine('sqlite:///foo.db')
print(frame)
frame.to_sql('colors', engine)

输出结果如下:

   white  red  blue  black  green
0      0    1     2      3      4
1      5    6     7      8      9
2     10   11    12     13     14
3     15   16    17     18     19

反之,读取数据库,则需要使用read_sql()函数,参数为表名和engine实例,如下所示:

import pandas as pd
from sqlalchemy import create_engine

engine= create_engine('sqlite:///foo.db')
frame = pd.read_sql('colors', engine)
print(frame)

输出结果如下:

AttributeError: 'OptionEngine' object has no attribute 'execute'