Python读取和处理文件后缀为.sqlite的数据文件(实例讲解)


Posted in Python onJune 27, 2017

最近在弄一个项目分析的时候,看到有一个后缀为”.sqlite”的数据文件,由于以前没怎么接触过,就想着怎么用python来打开并进行数据分析与处理,于是稍微研究了一下。

SQLite是一款非常流行的关系型数据库,由于它非常轻盈,因此被大量应用程序采用。

像csv文件一样,SQLite可以将数据存储于单个数据文件,以便方便的分享给其他人员。许多编程语言都支持SQLite数据的处理,python语言也不例外。

sqlite3是python的一个标准库,可以用于处理SQLite数据库。

用sqlite3创建和操作数据库文件

对于数据库的SQL语句,本文会用到最基础的SQL语句,应该不影响阅读。如果想进一步了解,可参考如下网址:
http://www.w3school.com.cn/sql/index.asp

下面,我们来应用salite3模块来创建SQLite数据文件,以及进行数据读写操作。

主要的步骤如下:

与数据库建立连接,创建数据库文件(.sqlite文件)

创建游标(cursor)

创建数据表(table)

向数据表中插入数据

查询数据

演示代码如下:

import sqlite3

with sqlite3.connect('test_database.sqlite') as con:
 c = con.cursor()
 c.execute('''CREATE TABLE test_table
 (date text, city text, value real)''')
 for table in c.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

数据预览的效果如下:

Python读取和处理文件后缀为.sqlite的数据文件(实例讲解)

Python读取和处理文件后缀为.sqlite的数据文件(实例讲解)

用pandas来读取sqlite数据文件

从上面代码的运行结果可以看出,数据查询的结果是一个由tuple组成的list。python的list数据在进行进一步的数据处理与分析时,可能会不太方便。可以想象一下,假设如果数据库的表格中一共有100万行或者更多数据,从list中循环遍历获取数据,效率会比较低。

这时,我们可以考虑用pandas提供的函数来从SQLite数据库文件中读取相关数据信息,并保存在DataFrame中,方便后续进一步处理。

Pandas提供了两个函数,均可以读取后缀为“.sqlite”数据文件的信息。

read_sql()

read_sql_query()

import pandas as pd

with sqlite3.connect('test_database.sqlite') as con:

 # 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

以上这篇Python读取和处理文件后缀为.sqlite的数据文件(实例讲解)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中的并发编程实例
Jul 07 Python
python实现得到一个给定类的虚函数
Sep 28 Python
解析Python中的变量、引用、拷贝和作用域的问题
Apr 07 Python
Python遍历文件夹和读写文件的实现代码
Aug 28 Python
Python实现学校管理系统
Jan 11 Python
python 使用pandas计算累积求和的方法
Feb 08 Python
python队列Queue的详解
May 10 Python
python3.8 微信发送服务器监控报警消息代码实现
Nov 05 Python
Python坐标轴操作及设置代码实例
Jun 04 Python
详解python中的异常捕获
Dec 15 Python
如何用 Python 制作一个迷宫游戏
Feb 25 Python
win10+anaconda安装yolov5的方法及问题解决方案
Apr 29 Python
最近Python有点火? 给你7个学习它的理由!
Jun 26 #Python
Python的装饰器使用详解
Jun 26 #Python
Python学习思维导图(必看篇)
Jun 26 #Python
python flask 多对多表查询功能
Jun 25 #Python
Python的语言类型(详解)
Jun 24 #Python
Python队列的定义与使用方法示例
Jun 24 #Python
Python实现字符串逆序输出功能示例
Jun 24 #Python
You might like
在PHP中执行系统外部命令
2006/10/09 PHP
php操作MongoDB基础教程(连接、新增、修改、删除、查询)
2014/03/25 PHP
自己写的兼容低于PHP 5.5版本的array_column()函数
2014/10/24 PHP
php判断对象是派生自哪个类的方法
2015/06/20 PHP
php连接oracle数据库的方法(测试成功)
2016/05/26 PHP
Laravel框架实现文件上传的方法分析
2019/09/29 PHP
33种Javascript 表格排序控件收集
2009/12/03 Javascript
JSON 编辑器实现代码
2009/12/06 Javascript
js控制表单奇偶行样式的简单方法
2013/07/31 Javascript
使用 Node.js 做 Function Test实现方法
2013/10/25 Javascript
jquery调整表格行tr上下顺序实例讲解
2016/01/09 Javascript
Avalonjs双向数据绑定与监听的实例代码
2017/06/23 Javascript
vue兄弟组件传递数据的实例
2018/09/06 Javascript
Vue slot用法(小结)
2018/10/22 Javascript
Jquery Datatables的使用详解
2020/01/30 jQuery
深入浅析golang zap 日志库使用(含文件切割、分级别存储和全局使用等)
2020/02/19 Javascript
vue 动态给每个页面添加title、关键词和描述的方法
2020/08/28 Javascript
vue实现选中效果
2020/10/07 Javascript
hmac模块生成加入了密钥的消息摘要详解
2018/01/11 Python
pycharm远程开发项目的实现步骤
2019/01/20 Python
pycharm双击无响应(打不开问题解决办法)
2020/01/10 Python
使用 tf.nn.dynamic_rnn 展开时间维度方式
2020/01/21 Python
Tensorflow与Keras自适应使用显存方式
2020/06/22 Python
Myprotein法国官网:欧洲第一运动营养品牌
2019/03/26 全球购物
幼儿园国庆节活动方案
2014/02/01 职场文书
村级换届选举方案
2014/05/10 职场文书
授权委托书样本
2014/09/25 职场文书
学校政风行风整改方案
2014/10/25 职场文书
继续教育个人总结
2015/03/03 职场文书
监守自盗观后感
2015/06/10 职场文书
我在伊朗长大观后感
2015/06/16 职场文书
公司安全管理制度范本
2015/08/05 职场文书
java中重写父类方法加不加@Override详解
2021/06/21 Java/Android
Java 轮询锁使用时遇到问题
2022/05/11 Java/Android
Redis全局ID生成器的实现
2022/06/05 Redis
MySQL 原理优化之Group By的优化技巧
2022/08/14 MySQL