Я делаю запрос (т. е. выбираю несколько строк на основе некоторого условия), используя PyTables, с функциями tables.Table.read()
и tables.Table.read_where()
. По сути, это основано на numpy и pandas с NumExpr:
http://www.pytables.org/usersguide/tutorials.html http://www.pytables.org/cookbook/hints_for_sql_users.html https://github.com/pytables/pytables/blob/6782048204.plob9f9f9 /а>
В «подсказках для пользователей 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)')
Это возможно? Идея заключалась бы в том, чтобы я написал функцию, с помощью которой пользователи вводят список значений для запроса, и она выполняет запрос ИЛИ для каждого.