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

本文的原文连接是: http://blog.csdn.net/freewebsys/article/details/51025044 未经博主允许不得转载。 
博主地址是: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()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

对比文件大小:

-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
  • 1
  • 2

省了700mb空间。

3,总结


本文的原文连接是: http://blog.csdn.net/freewebsys/article/details/51025044 未经博主允许不得转载。 
博主地址是: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 上面,也非常容易呢。

你可能感兴趣的:(TuShare(3):使用pandas 压缩存储hdf5文件)