最近在弄一个项目分析的时候,看到有一个后缀为 ".sqlite" 的数据文件,由于以前没怎么接触过,就想着怎么用 python 来打开并进行数据分析与处理,于是稍微研究了一下。
SQLite 是一款非常流行的关系型数据库,由于它非常轻盈,因此被大量应用程序采用。
像 csv 文件一样,SQLite 可以将数据存储于单个数据文件,以便方便的分享给其他人员。许多编程语言都支持 SQLite 数据的处理,python 语言也不例外。
sqlite3 是 python 的一个标准库,可以用于处理 SQLite 数据库。
对于数据库的 SQL 语句,本文会用到最基础的 SQL 语句,应该不影响阅读。如果想进一步了解,可参考如下网址:http://www.w3school.com.cn/sql/index.asp
下面,我们来应用 salite3 模块来创建 SQLite 数据文件,以及进行数据读写操作。主要的步骤如下:
演示代码如下:
- importsqlite3withsqlite3.connect('test_database.sqlite')ascon:
- c = con.cursor()
- c.execute('''CREATE TABLE test_table
- (date text, city text, value real)''')fortableinc.execute("SELECT name FROM sqlite_master WHERE type='table'"):
- print("Table", table[0])
- c.execute('''INSERT INTO test_table VALUES
- ('2017-6-25', 'bj', 100)''')
- c.execute('''INSERT INTO test_table VALUES
- ('2017-6-25', 'pydataroad', 150)''')
- c.execute("SELECT * FROM test_table")
- print(c.fetchall())
- Table test_table
- [('2017-6-25', 'bj', 100.0), ('2017-6-25', 'pydataroad', 150.0)]
关于 SQLite 数据库中数据的可视化预览,有很多的工具可以实现,我这里使用的是 SQLite Studio,是一个免费使用的工具,不需要安装,下载下来就可以使用,有兴趣的同学可以参考下面的链接。
https://sqlitestudio.pl/index.rvt?act=download
数据预览的效果如下:
从上面代码的运行结果可以看出,数据查询的结果是一个由 tuple 组成的 list。python 的 list 数据在进行进一步的数据处理与分析时,可能会不太方便。可以想象一下,假设如果数据库的表格中一共有 100 万行或者更多数据,从 list 中循环遍历获取数据,效率会比较低。
这时,我们可以考虑用 pandas 提供的函数来从 SQLite 数据库文件中读取相关数据信息,并保存在 DataFrame 中,方便后续进一步处理。
Pandas 提供了两个函数,均可以读取后缀为 ".sqlite" 数据文件的信息。
- importpandasaspdwithsqlite3.connect('test_database.sqlite')ascon:# read_sql_query和read_sql都能通过SQL语句从数据库文件中获取数据信息df = pd.read_sql_query("SELECT * FROM test_table", con=con)# df = pd.read_sql("SELECT * FROM test_table", con=con)print(df.shape)
- print(df.dtypes)
- print(df.head())
- (2, 3)
- date object
- city object
- value float64
- dtype: object
- date city value
- 0 2017-6-25 bj 100.0
- 1 2017-6-25 pydataroad 150.0
来源: http://www.cnblogs.com/lemonbit/p/7078038.html