Python 从hdf5文件读取数据,时间成本快速增加
我有一个大小为1.27gb的数据集。虽然我可以把它们都放进内存,但做数据分析需要很多时间。我的想法是随机抽取部分数据进行分析 我使用的语言是python。我首先将所有数据以hdf5的形式放入:Python 从hdf5文件读取数据,时间成本快速增加,python,database,numpy,pandas,hdf5,Python,Database,Numpy,Pandas,Hdf5,我有一个大小为1.27gb的数据集。虽然我可以把它们都放进内存,但做数据分析需要很多时间。我的想法是随机抽取部分数据进行分析 我使用的语言是python。我首先将所有数据以hdf5的形式放入: import pandas as pd import numpy as np import time store = pd.HDFStore('train.h5', mode='w') data_reader = pd.read_csv('./train.csv', chunksize=1e8) f
import pandas as pd
import numpy as np
import time
store = pd.HDFStore('train.h5', mode='w')
data_reader = pd.read_csv('./train.csv', chunksize=1e8)
for i, chuck in enumerate(data_reader):
store.append('all_train', chuck)
store.close()
执行此操作不需要很长时间,生成的文件大小为1.64gb:
<class 'pandas.io.pytables.HDFStore'>
File path: train.h5
/all_train frame_table (typ->appendable,nrows->29118021,ncols->6,indexers->[index])
当样本量非常小时,比如说20,则需要0.2秒来对数据进行采样。但是,当我将尺寸增加到35时,需要2分钟以上。那么,为什么时间成本增长如此之快
对从大数据中进行采样有什么建议吗?仅对35行进行采样需要2分钟吗?还是三万五千行?
store = pd.HDFStore('train.h5')
nrows = store.get_storer('all_train').nrows
r = np.random.randint(0,nrows,size=20)
now = time.time()
print_type(pd.read_hdf('train.h5', 'all_train', where="index=r"))
print 'Time Cost : %f' % (time.time() - now)