所以我用一个看起来像这个
的简单数据集创建了hdf5文件>>> pd.read_hdf('STORAGE2.h5', 'table')
A B
0 0 0
1 1 1
2 2 2
3 3 3
4 4 4
使用此脚本
import pandas as pd
import scipy as sp
from pandas.io.pytables import Term
store = pd.HDFStore('STORAGE2.h5')
df_tl = pd.DataFrame(dict(A=list(range(5)), B=list(range(5))))
df_tl.to_hdf('STORAGE2.h5','table',append=True)
我知道我可以使用
选择列x = pd.read_hdf('STORAGE2.h5', 'table', columns=['A'])
或
x = store.select('table', where = 'columns=A')
我如何选择列'A'中等于3的所有值或特定的或带有'A'列中字符串的指示,如'foo'?在pandas数据框架中,我会使用df[df["A"]==3]
或df[df["A"]=='foo']
如果我使用read_hdf()
或store.select()
,效率会有所不同吗?
答案 0 :(得分:2)
您需要指定data_columns=
(您也可以使用True
来搜索所有列)
(仅供参考,mode='w'
将启动文件,仅用于我的示例)
In [50]: df_tl.to_hdf('STORAGE2.h5','table',append=True,mode='w',data_columns=['A'])
In [51]: pd.read_hdf('STORAGE2.h5','table',where='A>2')
Out[51]:
A B
3 3 3
4 4 4