我正在使用 PyTables 进行查询(即根据某些条件选择多行),其中包含函数tables.Table.read()
和tables.Table.read_where()
. 这本质上是基于 numpy 和带有 NumExpr 的 pandas:
http://www.pytables.org/usersguide/tutorials.html http://www.pytables.org/cookbook/hints_for_sql_users.html https://github.com/PyTables/PyTables/blob/6782047b9223897fd59ff4967d71d7fdfb474f16/tables/table。 py
在“sql 用户提示”中,一次选择多行的示例是这样的:
rows = tbl.read_where('(sqrt(x**2 + y**2) <= 1) & (temperature < 100)')
假设我更喜欢如下查询:所有等于温度 100 或等于温度 90 的行
rows = tbl.read_where('(temperature == 100) | (temperature == 90)')
这完美地工作。但我想通过“温度值”列表/数组来完成这项任务。
temperatures = [80, 90, 100]
# reads in temperatures
# performs this query:
rows = tbl.read_where('(temperature == 80) | (temperature == 90) | (temperature == 100)')
这可能吗?我的想法是我会编写一个函数,让用户输入要查询的值列表,并为每个值执行 OR 查询。