Python提高从HDF5文件读取速度

2024-04-24 23:00:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在建立一个数据库来存储财务数据(尤其是期权链)。在

我每天检索每个交易日的数据,即5d/周或250d/年。我对300个股票代码这样做,数据库正以每天150Mb的速度增长,目前已达到9Gb。在

数据以熊猫数据帧的形式提供。在

我想使用HDF5格式,在每个交易日将文件分组,然后在股票代码中进一步分支,并进一步“调用”/“卖出”(期权行话)

下面是编写文件的代码片段,我使用pd.HDF存储还有一个for循环

db = pd.HDFStore('Database.h5')
group = c_year + '/' + c_month + '/' + c_day + '/'# Create main group from current day

for i in tickers['Symbol']:

    db.put(group + i + '/Call', data, format = 'table', append = True, data_columns = True)

每个交易日编写文件的速度很慢,但我得出的结论是,这一切都是为了用pandas datareader检索数据

随后,我需要检索整个数据库,将其转换为简化的pandas数据帧,以便进行数据争用。在

下面的代码只为“calls”读取*.h5文件,而另一个for在1年的回顾期内遍历所有日期

^{pr2}$

这可能会变得非常缓慢,我注意到慢度随着我检索的股票数量呈指数级增长,这使得这个过程毫无用处。在

当我检索到一个股票代码时只花了15秒,但从股票代码70到80需要50分钟!在

我的文件结构有什么问题吗?或者我可以做些什么来加快这个过程?在


Tags: 文件数据代码数据库fordbdatagroup