为什么选用hdf5

和csv做了个比较。

import time
import pandas as pd

print('测试csv和hdf5的读写速度。')
print('1、测试read_csv的速度')
t0 = time.time()
df = pd.read_csv('~/stock-info/caibao.csv',header=None,encoding = 'gb18030')
t1 =time.time()
t = t1 - t0
print('read_csv耗时 : ',t)

print('2、测试to_csv的速度')
t0 = time.time()
df.to_csv('caibao.csv')
t1 =time.time()
t = t1 - t0
print('to_csv耗时 : ',t)

for  s in df.columns: #必须把字段decode成utf8,否则warning,读时出错
    df[s] = df[s].str.decode('utf8')

print('3、测试HDFStore接口的写速度')
t0 = time.time()
store = pd.HDFStore('test/caibao.h5')
store['df'] = df
store.close
t1 =time.time()
t = t1 - t0
print('HDFStore写耗时 : ',t)

print('4、测试HDFStore接口的读速度')
t0 = time.time()
store = pd.HDFStore('test/caibao.h5')
df = store['df']
store.close
t1 =time.time()
t = t1 - t0
df.head()
print('HDFStore读耗时 : ',t)

print('5、测试fix模式的to_hdf速度')
t0 = time.time()
df.to_hdf('test/caibao2.h5', 'df',format='f', mode='w')
t1 =time.time()
t = t1 - t0
print('fix模式to_hdf耗时 : ',t)

print('6、测试fix模式的read_hdf速度')
t0 = time.time()
df = pd.read_hdf('test/caibao2.h5', 'df')
t1 =time.time()
t = t1 - t0
df.head()
print('fix模式read_hdf耗时 : ',t)

print('7、测试table模式的to_hdf速度')
t0 = time.time()
df.to_hdf('test/caibao3.h5', 'df',format='t', mode='w')
t1 =time.time()
t = t1 - t0
print('table模式to_hdf耗时 : ',t)

print('8、测试table模式的read_hdf速度')
t0 = time.time()
df = pd.read_hdf('test/caibao3.h5', 'df')
t1 =time.time()
t = t1 - t0
df.head()
print('table模式read_hdf耗时 : ',t)

测试结果

测试csv和hdf5的读写速度。
1、测试read_csv的速度
read_csv耗时 :  0.20053529739379883
2、测试to_csv的速度

/home/zhangyl/anaconda3/envs/zz-tensorflow-gpu/lib/python3.7/site-packages/IPython/core/interactiveshell.py:3146: DtypeWarning: Columns (0,7,23,30,33,34) have mixed types.Specify dtype option on import or set low_memory=False.
  interactivity=interactivity, compiler=compiler, result=result)

to_csv耗时 :  0.19930219650268555
3、测试HDFStore接口的写速度
HDFStore写耗时 :  0.08034491539001465
4、测试HDFStore接口的读速度
HDFStore读耗时 :  0.008101701736450195
5、测试fix模式的to_hdf速度
fix模式to_hdf耗时 :  0.023907184600830078
6、测试fix模式的read_hdf速度
fix模式read_hdf耗时 :  0.008603096008300781
7、测试table模式的to_hdf速度
table模式to_hdf耗时 :  0.043287038803100586
8、测试table模式的read_hdf速度
table模式read_hdf耗时 :  0.00782632827758789

中间to_csv的warning不知是什么意思,大神帮助回答下。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值