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))

 



 

 
        



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM