在许多应用中,数据很少取自文本文件,因为用这种方式存储大量数据文件很低效,基于SQL的关系型数据库使用很广泛,此外还有一些非SQL(如NOSQL)型数据库也变得非常流行,数据库的选择通常取决于性能,数据完整性以及应用程序的伸缩性需求。
将数据从SQL加载到DataFrame非常简单,此外pandas还有一些能简化该过程的函数,例如,我将使用一款嵌入式SQLite数据库(通过python内置的sqlite3驱动器)
import sqlite3
from pandas import Series,DataFrame
import pandas.io.sql as sql
query = """
CREATE TABLE test
(a VARCHAR(20),b VARCHAR(20),
c REAL,d INTEGER
);"""
con = sqlite3.connect(':memory:')
con.execute(query)
con.commit()
然后插入几行数据
从表中选取数据时,会返回一个元组列表
date = [('atl','at',1.25,3),
('btl','bt',1.35,4),
('ctl','ct',1.45,5)]
stmt = "INSERT INTO test VALUES(?,?,?,?)"
con.executemany(stmt,date)