HDFStore.select数据筛选咨询:多条件查询实现方法
正确使用HDFStore.select实现多条件筛选
你的代码存在几个关键问题:
- 时间字符串未用引号包裹,HDF查询的条件表达式中,字符串/时间类型值必须用单引号或双引号括起来
- 多条件拼接时存在语法错误(多余的右括号)
- 第二个查询的参数格式完全不符合
select方法的要求
正确的多条件查询写法
将两个条件用&连接,确保每个条件语法正确,完整代码如下:
import pandas as pd # 使用with语句自动管理HDF文件的打开/关闭 with pd.HDFStore("xh_data_L9.hdf5") as ss: # 组合多条件:Name等于'Name_A',且Time在指定区间内 s_3 = ss.select( 'alldata', where="Name == 'Name_A' & Time > '2021-11-21 00:00:00' & Time < '2021-11-22 00:00:00'" )
额外注意事项
- 确保HDF文件中的
Time列已存储为datetime类型,若为字符串类型,时间比较逻辑可能失效 - 针对40亿行的超大规模数据,若查询速度慢,需确认HDF文件创建时采用的是
table格式(而非fixed格式),且已为Name和Time列建立索引,这会大幅提升查询效率
内容的提问来源于stack exchange,提问作者Jeffrey
相关产品推荐
相关产品推荐

