TuShare(2):使用TuShare,抓取股票数据并存储到数据库

简介: 本文的原文连接是: http://blog.csdn.net/freewebsys/article/details/50904965 未经博主允许不得转载。 博主地址是:http://blog.csdn.net/freewebsys1,关于股票数据存储股票数据比较特殊,需要做数据统计的。都需要一次进行批量查询多个数据,然后进行分析。 所以股票数据不一定要放到数

本文的原文连接是: http://blog.csdn.net/freewebsys/article/details/50904965 未经博主允许不得转载。
博主地址是:http://blog.csdn.net/freewebsys

1,关于股票数据存储


股票数据比较特殊,需要做数据统计的。都需要一次进行批量查询多个数据,然后进行分析。
所以股票数据不一定要放到数据库中存储。因为一般就两个维度。
那只股票,和那天的股票信息,然后使用模型进行分析预测。
所以数据可以存储为:/data/stock/yyyy/yyyMM/yyyyMMdd.hdf5
存储的数据是hdf5:
Hierarchical Data Format,可以存储不同类型的图像和数码数据的文件格式

2,安装hdf5库


#首先安装hdf5库
yum -y install hdf5 hdf5-devel
pip install unittest2
pip install --upgrade  tables

3,测试读写hdf5文件


参考pytables官方文档。
http://www.pytables.org/usersguide/tutorials.html
这里使用的是pandas封装的接口直接使用,而不是使用tables。

# python
Python 2.6.6 (r266:84292, Jul 23 2015, 15:22:56) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-11)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy as np
>>> import pandas as pd
###su
>>> a = np.random.standard_normal((9,4))
>>> b = pd.DataFrame(a)
>>> b.columns = [['num1','num2','num3','num4']]
>>> a
array([[-2.36198849, -1.27547933, -1.40351822, -0.6638619 ],
       [ 1.89159066, -0.31838519, -0.2065942 , -1.02327987],
       [-2.02771503, -0.81333254, -0.93644288, -0.91592467],
       [-1.3939496 ,  0.25899342,  1.11591841, -0.7423286 ],
       [-1.05104415, -0.79069151, -1.46536873, -0.01449547],
       [ 1.32483444,  0.32030117, -1.23575344,  0.51455106],
       [ 0.91297435,  0.43242834,  1.77235337,  1.14879289],
       [ 0.93476429,  0.18592698,  0.30198234, -0.61861642],
       [ 0.04462872, -0.99275411, -0.86382085, -1.53064223]])
>>> b
       num1      num2      num3      num4
0 -2.361988 -1.275479 -1.403518 -0.663862
1  1.891591 -0.318385 -0.206594 -1.023280
2 -2.027715 -0.813333 -0.936443 -0.915925
3 -1.393950  0.258993  1.115918 -0.742329
4 -1.051044 -0.790692 -1.465369 -0.014495
5  1.324834  0.320301 -1.235753  0.514551
6  0.912974  0.432428  1.772353  1.148793
7  0.934764  0.185927  0.301982 -0.618616
8  0.044629 -0.992754 -0.863821 -1.530642
>>> b.sum()
num1   -1.725905
num2   -2.992993
num3   -2.921244
num4   -3.845805
dtype: float64
>>> b.mean()
num1   -0.191767
num2   -0.332555
num3   -0.324583
num4   -0.427312
dtype: float64

###写hdf5文件:
>>> h5 = pd.HDFStore('/data/stock/test1.h5','w')
>>> h5['data'] = b
>>> h5.close()
>>> 
>>> b
       num1      num2      num3      num4
0 -2.361988 -1.275479 -1.403518 -0.663862
1  1.891591 -0.318385 -0.206594 -1.023280
2 -2.027715 -0.813333 -0.936443 -0.915925
3 -1.393950  0.258993  1.115918 -0.742329
4 -1.051044 -0.790692 -1.465369 -0.014495
5  1.324834  0.320301 -1.235753  0.514551
6  0.912974  0.432428  1.772353  1.148793
7  0.934764  0.185927  0.301982 -0.618616
8  0.044629 -0.992754 -0.863821 -1.530642

###读hdf5文件。
>>> h5 = pd.HDFStore('/data/stock/test1.h5','r')
>>> c = h5['data']
>>> c
       num1      num2      num3      num4
0 -2.361988 -1.275479 -1.403518 -0.663862
1  1.891591 -0.318385 -0.206594 -1.023280
2 -2.027715 -0.813333 -0.936443 -0.915925
3 -1.393950  0.258993  1.115918 -0.742329
4 -1.051044 -0.790692 -1.465369 -0.014495
5  1.324834  0.320301 -1.235753  0.514551
6  0.912974  0.432428  1.772353  1.148793
7  0.934764  0.185927  0.301982 -0.618616
8  0.044629 -0.992754 -0.863821 -1.530642
>>> h5.close()

4,TuShare读取股票数据存储


>>> import tushare as ts
>>> d = ts.get_tick_data('600848',date='2015-01-09')
>>> type(d)
<class 'pandas.core.frame.DataFrame'>
>>> len(d)
1212
###保存数据
>>> h5 = pd.HDFStore('/data/stock/test2.h5','w')
>>> h5['data'] = d
>>> h5.close()
>>> 
>>> 
###读取数据
>>> h5 = pd.HDFStore('/data/stock/test2.h5','r')
>>> e = h5['data']
>>> h5.close()
>>> 
>>> type(e)
<class 'pandas.core.frame.DataFrame'>
>>> len(e)
1212

5,总结


本文的原文连接是: http://blog.csdn.net/freewebsys/article/details/50904965 未经博主允许不得转载。
博主地址是:http://blog.csdn.net/freewebsys

使用文件直接存储到本地还是非常方便的。pandas直接封装的函数3行解决问题。
同时pandas封装的读出数据还是数组,可以直接进行操作。灰常方便。

目录
相关文章
|
2月前
|
存储 监控 数据处理
flink 向doris 数据库写入数据时出现背压如何排查?
本文介绍了如何确定和解决Flink任务向Doris数据库写入数据时遇到的背压问题。首先通过Flink Web UI和性能指标监控识别背压,然后从Doris数据库性能、网络连接稳定性、Flink任务数据处理逻辑及资源配置等方面排查原因,并通过分析相关日志进一步定位问题。
184 61
|
1天前
|
SQL 存储 运维
从建模到运维:联犀如何完美融入时序数据库 TDengine 实现物联网数据流畅管理
本篇文章是“2024,我想和 TDengine 谈谈”征文活动的三等奖作品。文章从一个具体的业务场景出发,分析了企业在面对海量时序数据时的挑战,并提出了利用 TDengine 高效处理和存储数据的方法,帮助企业解决在数据采集、存储、分析等方面的痛点。通过这篇文章,作者不仅展示了自己对数据处理技术的理解,还进一步阐释了时序数据库在行业中的潜力与应用价值,为读者提供了很多实际的操作思路和技术选型的参考。
13 1
|
6天前
|
存储 Java easyexcel
招行面试:100万级别数据的Excel,如何秒级导入到数据库?
本文由40岁老架构师尼恩撰写,分享了应对招商银行Java后端面试绝命12题的经验。文章详细介绍了如何通过系统化准备,在面试中展示强大的技术实力。针对百万级数据的Excel导入难题,尼恩推荐使用阿里巴巴开源的EasyExcel框架,并结合高性能分片读取、Disruptor队列缓冲和高并发批量写入的架构方案,实现高效的数据处理。此外,文章还提供了完整的代码示例和配置说明,帮助读者快速掌握相关技能。建议读者参考《尼恩Java面试宝典PDF》进行系统化刷题,提升面试竞争力。关注公众号【技术自由圈】可获取更多技术资源和指导。
|
9天前
|
前端开发 JavaScript 数据库
获取数据库中字段的数据作为下拉框选项
获取数据库中字段的数据作为下拉框选项
37 5
|
12天前
|
存储 druid 分布式数据库
列式存储数据库与超市的关系?
列式存储数据库是一种高效的数据管理方式,类似于超市将相似商品集中摆放。它将相同类型的数据(如年龄、价格)归类存储,便于快速查询和压缩,广泛应用于市场分析、财务报告和健康数据分析等领域。知名产品包括HBase、ClickHouse、Druid和Apache Cassandra等,适合处理大规模数据和实时分析任务。
31 4
|
2月前
|
存储 数据库
快速搭建南大通用GBase 8s数据库SSC共享存储集群
本文介绍如何GBase8s 数据库 在单机环境中快速部署SSC共享存储集群,涵盖准备工作、安装数据库、创建环境变量文件、准备数据存储目录、修改sqlhost、设置onconfig、搭建sds集群及集群检查等步骤,助你轻松完成集群功能验证。
|
2月前
|
关系型数据库 MySQL 数据库
GBase 数据库如何像MYSQL一样存放多行数据
GBase 数据库如何像MYSQL一样存放多行数据
|
28天前
|
存储 Oracle 关系型数据库
服务器数据恢复—华为S5300存储Oracle数据库恢复案例
服务器存储数据恢复环境: 华为S5300存储中有12块FC硬盘,其中11块硬盘作为数据盘组建了一组RAID5阵列,剩下的1块硬盘作为热备盘使用。基于RAID的LUN分配给linux操作系统使用,存放的数据主要是Oracle数据库。 服务器存储故障: RAID5阵列中1块硬盘出现故障离线,热备盘自动激活开始同步数据,在同步数据的过程中又一块硬盘离线,RAID5阵列瘫痪,上层LUN无法使用。
|
10天前
|
存储 Oracle 关系型数据库
数据库传奇:MySQL创世之父的两千金My、Maria
《数据库传奇:MySQL创世之父的两千金My、Maria》介绍了MySQL的发展历程及其分支MariaDB。MySQL由Michael Widenius等人于1994年创建,现归Oracle所有,广泛应用于阿里巴巴、腾讯等企业。2009年,Widenius因担心Oracle收购影响MySQL的开源性,创建了MariaDB,提供额外功能和改进。维基百科、Google等已逐步替换为MariaDB,以确保更好的性能和社区支持。掌握MariaDB作为备用方案,对未来发展至关重要。
34 3
|
10天前
|
安全 关系型数据库 MySQL
MySQL崩溃保险箱:探秘Redo/Undo日志确保数据库安全无忧!
《MySQL崩溃保险箱:探秘Redo/Undo日志确保数据库安全无忧!》介绍了MySQL中的三种关键日志:二进制日志(Binary Log)、重做日志(Redo Log)和撤销日志(Undo Log)。这些日志确保了数据库的ACID特性,即原子性、一致性、隔离性和持久性。Redo Log记录数据页的物理修改,保证事务持久性;Undo Log记录事务的逆操作,支持回滚和多版本并发控制(MVCC)。文章还详细对比了InnoDB和MyISAM存储引擎在事务支持、锁定机制、并发性等方面的差异,强调了InnoDB在高并发和事务处理中的优势。通过这些机制,MySQL能够在事务执行、崩溃和恢复过程中保持
36 3