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 19 Python
Python网络爬虫出现乱码问题的解决方法
Jan 05 Python
Python错误: SyntaxError: Non-ASCII character解决办法
Jun 08 Python
python中找出numpy array数组的最值及其索引方法
Apr 17 Python
详谈套接字中SO_REUSEPORT和SO_REUSEADDR的区别
Apr 28 Python
python微元法计算函数曲线长度的方法
Nov 08 Python
python turtle库画一个方格和圆实例
Jun 27 Python
python 错误处理 assert详解
Apr 20 Python
Django配置Bootstrap, js实现过程详解
Oct 13 Python
Python urllib3软件包的使用说明
Nov 18 Python
python爬虫判断招聘信息是否存在的实例代码
Nov 20 Python
Python Pygame实战之塔防游戏的实现
Mar 17 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扩展编写点滴 技巧收集
2010/03/09 PHP
MySQL连接数超过限制的解决方法
2011/07/17 PHP
php中常见的sql攻击正则表达式汇总
2014/11/06 PHP
Apache启动报错No space left on device: AH00023该怎么解决
2015/10/16 PHP
thinkphp3.2中实现phpexcel导出带生成图片示例
2017/02/14 PHP
PHP中迭代器的简单实现及Yii框架中的迭代器实现方法示例
2020/04/26 PHP
php7 错误处理机制修改实例分析
2020/05/25 PHP
5秒后跳转到另一个页面的js代码
2013/10/12 Javascript
JavaScript中的闭包(Closure)详细介绍
2014/12/30 Javascript
jQuery学习笔记之jQuery中的$
2015/01/19 Javascript
jQuery选择器总结之常用元素查找方法
2016/08/04 Javascript
js实现背景图自适应窗口大小
2017/01/10 Javascript
支持移动端原生js轮播图
2017/02/16 Javascript
Vue中fragment.js使用方法详解
2017/03/09 Javascript
Bootstrap免费字体和图标网站(值得收藏)
2017/03/16 Javascript
jQuery轻松实现无缝轮播效果
2017/03/22 jQuery
mint-ui在vue中的使用示例
2018/04/05 Javascript
详解vue添加删除元素的方法
2018/06/30 Javascript
详解easyui基于 layui.laydate日期扩展组件
2018/07/18 Javascript
解决微信小程序防止无法回到主页的问题
2018/09/28 Javascript
ES6 更易于继承的类语法的使用
2019/02/11 Javascript
微信小程序云开发如何使用云函数生成二维码
2019/05/18 Javascript
js逆向解密之网络爬虫
2019/05/30 Javascript
学习python 之编写简单乘法运算题
2016/02/27 Python
Python使用Redis实现作业调度系统(超简单)
2016/03/22 Python
python3.7 sys模块的具体使用
2019/07/22 Python
Django后端按照日期查询的方法教程
2021/02/28 Python
HTML中meta标签及Keywords
2020/04/15 HTML / CSS
英国女士家居服网站:hush
2017/08/09 全球购物
Intimissimi德国网上商店:意大利知名内衣品牌
2018/04/03 全球购物
EJB2和EJB3在架构上的不同点
2014/09/29 面试题
大学生简单自荐信
2013/11/10 职场文书
幼儿园教师的自我评价范文
2014/09/17 职场文书
2015年社区服务活动总结
2015/03/25 职场文书
停车场管理制度范本
2015/08/05 职场文书
Linux系统下MySQL配置主从分离的步骤
2022/03/21 MySQL