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

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

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

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

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

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

下面,我们来应用salite3模块来创建SQLite数据文件,以及进行数据读写操作。主要的步骤如下:

  1. 与数据库建立连接,创建数据库文件(.sqlite文件)
  2. 创建游标(cursor)
  3. 创建数据表(table)
  4. 向数据表中插入数据
  5. 查询数据

演示代码如下:

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

数据预览的效果如下:

用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"的数据文件的更多相关文章

  1. 【Python】Python 读取csv的某行或某列数据

    Python 读取csv的某行 转载 2016年08月30日 21:01:44 标签: python / csv / 数据   站长用Python写了一个可以提取csv任一列的代码,欢迎使用.Gith ...

  2. 遍历文件后缀名 为 .java的文件

    import java.io.File; import java.io.FileFilter; //创建一个功夫类继承文件管理类 public  class FileFu implements Fil ...

  3. [Python] 删除指定目录下后缀为 xxx 的过期文件

    import os import time import datetime def should_remove(path, pattern, days): if not path.endswith(p ...

  4. 使用python读取配置文件并从mysql数据库中获取数据进行传参(基于Httprunner)

    最近在使用httprunner进行接口测试,在传参时,用到了三种方法:(1)从csv文件中获取:(2)在config中声名然后进行引用:(3)从函数中获取.在测试过程中,往往有些参数是需要从数据库中获 ...

  5. Mysql数据库文件迁移并修改默认数据文件存储位置

    环境: 1.两台Win10电脑 2.MySql5.6 过程: 1.原电脑停止MySql服务 2.复制C:\ProgramData\MySQL\MySQL Server 5.6\data文件夹到目标电脑 ...

  6. Python解析excel文件并存入sqlite数据库

    最近由于工作上的需求 需要使用Python解析excel文件并存入sqlite 就此做个总结 功能:1.数据库设计 建立数据库2.Python解析excel文件3.Python读取文件名并解析4.将解 ...

  7. Python读取Yaml文件

    近期看到好多使用Yaml文件做为配置文件或者数据文件的工程,随即也研究了下,发现Yaml有几个优点:可读性好.和脚本语言的交互性好(确实非常好).使用实现语言的数据类型.有一个一致的数据模型.易于实现 ...

  8. [转] Windows下使用Python读取Excel表格数据

    http://www.python-excel.org/这个网站罗列了很多关于在Python下操作Excel文件的信息,这里选择了其介绍的第一个模块xlrd . xlrd 0.9.2版本跨平台同时支持 ...

  9. Python 读取图像文件的性能对比

    Python 读取图像文件的性能对比 使用 Python 读取一个保存在本地硬盘上的视频文件,视频文件的编码方式是使用的原始的 RGBA 格式写入的,即无压缩的原始视频文件.最开始直接使用 Pytho ...

随机推荐

  1. 玩转spring boot——ajax跨域

    前言  java语言在多数时,会作为一个后端语言,为前端的php,node.js等提供API接口.前端通过ajax请求去调用java的API服务.今天以node.js为例,介绍两种跨域方式:Cross ...

  2. 最简单的html5语言

    什么是 HTML5? HTML5 是下一代 HTML 标准. 最小的HTML5文档 下面是一个简单的HTML5文档: <</span>!DOCTYPE html><< ...

  3. c# post basic 接口

    string url = "http://xxxxxxxxx";//地址,请反复检查地址的准确性 string usernamePassword = "username: ...

  4. linux防火墙基本操作

    1.查看防火墙运行状态 # firewall-cmd --state 或者 # systemctl status firewalld.service .关闭防火墙 # systemctl stop f ...

  5. linux -- 个人笔记

    ##转自别人的博客 一般直接用tar命令打包很简单,直接使用 tar -zcvf test.tar.gz test 即可. 在很多时候,我们要对某一个目录打包,而这个目录下有几十个子目录和子文件,我们 ...

  6. 你真的用好了Python的random模块吗?

    random模块 用于生成伪随机数 源码位置: Lib/random.py(看看就好,千万别随便修改) 真正意义上的随机数(或者随机事件)在某次产生过程中是按照实验过程中表现的分布概率随机产生的,其结 ...

  7. RUN vs CMD vs ENTRYPOINT - 每天5分钟玩转 Docker 容器技术(17)

    RUN.CMD 和 ENTRYPOINT 这三个 Dockerfile 指令看上去很类似,很容易混淆.本节将通过实践详细讨论它们的区别. 简单的说: RUN 执行命令并创建新的镜像层,RUN 经常用于 ...

  8. java面向对象--类加载器及Class对象

    类加载器 jvm 和 类的关系 当调用 java命令运行一个java程序时,会启动一个java虚拟机进程.同一个jvm的所有线程.所有变量都处于同一个进程里,都使用该jvm进程的内存区. jvm进程终 ...

  9. 互联网金融P2P主业务场景自动化测试

            互联网金融P2P行业,近三年来发展迅速,如火如荼.         据不完全统计,全国有3000+的企业.  “互联网+”企业,几乎每天都会碰到一些奇奇怪怪的bug,作为在互联网企业工 ...

  10. XSS研究2-来自内部的XSS攻击的防范

    引入: 前面我们分2篇文章分别探讨了来自外部的XSS攻击和来自内部的XSS攻击,现在我们来专门探讨如何防范来自内部的XSS攻击.   实践:  http://www.cnblogs.com/crazy ...