Python股票处理之七_数据库存储
Python 股票处理之七 _ 数据库存储
1. 说明
股票数据无需每次都从网上下载,像日线级别的历史数据会常常用到,使用多线程下载一般也需要几个小时,最好存储到本地,除了已有的特征值,还有清洗后的数据,和计算出的新特征值,以及需要与其它程序共享数据。相对于数据文件,使用数据库更合适。
本文介绍 pandas(数据结构支持)通过 sqlalchemy 与数据库连接,存储 tushare 下载的日线数据,用一套代码操作不同数据库(Mysql/sqlite)。
2. 安装数据库
1) Sqlalchemy 工具
1 | $ pip install sqlalchemy |
2) Mysql 数据库
1 | $ sudo apt-get install mysql-server |
3) Sqlite 数据库
1 | $ sudo apt install sqlite3 |
(也可使用图形界面工具 sqliteman 查看数据库)
3. 程序
1 | # -*- coding: utf-8 -*- |
4. 其它
1) 运行 SQL 语句
sqlalchemy 也支持直接运行 SQL 语句,形如:
1 | result = engine.execute(‘select * from stock’) |
使用 sqlalchemy 后,除了方便与 pandas 中的数据对接以外,也基本屏蔽了不同数据库之间的差异,换库时无需大量调整代码,十分方便。
2) 多线程下载
历史日线数据量较大,可使用 python 中的 multiprocessing.dummy.Pool 多线程下载。
3) 从数据库中读出数据
和 to_sql 相对的是 read_sql,它可以从数据库中读出数据,并转换成 DataFrame 的格式。具体使用形如:
stocklist = pd.read_sql('table1',engine) # 其中 stocklist 是 DataFrame 格式数据,pd 是 import pandas as pd,table1 是库名,engine 同上例一样,指向数据库。
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.