如何查询通过Pandas Dataframe保存的PyTables frame_表?

2024-04-24 05:15:45 发布

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

我有以下熊猫数据帧:

import pandas as pd
df = pd.read_table('fname.dat')

因此,我创建/打开一个现有的HDFStore文件:

^{pr2}$

为了索引列的子集,我只需使用

store.append('key_name', df, data_columns=['colA','colB','colZ'])

显然,HDFStore.append()table格式为默认保存pandas数据帧。但是,它看起来实际上是一个“frame_table”对象:

store 

输出

 /key_name            frame_table  (typ->appendable,nrows->3254334,ncols->14,indexers->[index],dc->[colA, colB, colZ])

如何有效地索引此对象?在

通常,查询将是

 result = [row for row in table.where('colA==22 & colB==45')]

但是对于一个frame_table对象,会这样做吗?在


Tags: 数据对象storekeynamepandasdftable
1条回答
网友
1楼 · 发布于 2024-04-24 05:15:45

frame_table-表示它是以table格式保存的数据帧。在

当使用data_columns=['colA','colB','colZ']参数时,您已经“索引”['colA','colB','colZ']列。在

因此,现在可以按如下方式查询HDFStore:

store = pd.HDFStore('store.h5')
varA = 100
varZ = 'string_value'
df = store.select('key_name', where='colA >= varA & colZ == varZ')

或者,您可以使用pd.read_hdf(...),而不是store.select(...)

如果你能提供一个样本和所需的数据集,答案可能会更简洁。。。在

相关问题 更多 >