您的位置:首页 > 其它

TuShare(3):使用pandas 压缩存储hdf5文件

2016-03-31 12:35 120 查看
本文的原文连接是: /article/7549497.html 未经博主允许不得转载。

博主地址是:http://blog.csdn.net/freewebsys

1,使用压缩

hdf5在存储的是支持压缩,使用的方式是blosc,这个是速度最快的也是pandas默认支持的。

使用压缩可以提磁盘利用率,节省空间。

开启压缩也没有什么劣势,只会慢一点点。

压缩在小数据量的时候优势不明显,数据量大了才有优势。

同时发现hdf读取文件的时候只能是一次写,写的时候可以append,可以put,但是写完成了之后关闭文件,就不能再写了,

会覆盖。

2,使用压缩方式写文件

import numpy as np
import pandas as pd
#生成9000,0000条数据,9千万条
a = np.random.standard_normal((90000000,4))
b = pd.DataFrame(a)
#普通格式存储:
h5 = pd.HDFStore('/data/stock/test_s.h5','w')
h5['data'] = b
h5.close()

#压缩格式存储
h5 = pd.HDFStore('/data/stock/test_c4.h5','w', complevel=4, complib='blosc')
h5['data'] = b
h5.close()


对比文件大小:

-rw-r--r--. 1 root root 2.7G Mar 31 11:20 test_c4.h5
-rw-r--r--. 1 root root 3.4G Mar 31 11:19 test_s.h5


省了700mb空间。

3,总结

本文的原文连接是: /article/7549497.html 未经博主允许不得转载。

博主地址是:http://blog.csdn.net/freewebsys

pandas官网有CookBook。

http://pandas.pydata.org/pandas-docs/stable/cookbook.html

对比CSV文件格式,hdf5支持按照key寻找,可以直接把股票id作为key寻找。比较hdf5是结构化的数据格式,而csv还是个文本。

比数据库方式效果高多了,读写很快。

对于金融,股票系统。还是直接读写文件来的方便。

按照日期和股票id进行两个分区。而且后期迁移的时候直接可以迁移到hadoop 上面,也非常容易呢。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: