zoukankan      html  css  js  c++  java
  • pandas数据分析-读取sqlite3数据库的数据

    在许多应用中,数据很少取自文本文件,因为用这种方式存储大量数据文件很低效,基于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)
    con.commit()
    cur = con.execute('select * from test')
    rows = cur.fetchall()
    print(rows)

    你可以将这个元组列表传给DataFrame的构造器

    print(DataFrame(rows))

    这种数据规整操作非常多,你肯定不想每查一次数据库就重写一次,pandas有一个可以简化该过程的read_sql函数,只需要传入select语句和连接对象即可。

    print(sql.read_sql('select * from test',con))



    
    


  • 相关阅读:
    个人的购物项目 第一期
    中小企业信贷风险补偿综合管理系统
    市场部信息管理系统
    mono+jexus 之连接数据库
    mono+jexus 验证码不显示:System.Drawing
    CentOS安装epel
    system 函数
    tcp/ip协议listen函数中backlog参数的含义与php-fpm的502 Bad Gateway
    tengine-2.1.0 + lua + base64
    tengine-2.1.0 + GraphicsMagick-1.3.20
  • 原文地址:https://www.cnblogs.com/li98/p/11028805.html
Copyright © 2011-2022 走看看