https://pandas.pydata.org/pandas-docs/stable/indexing.html#the-query-method

аружил метод панд DataFrame.query и егопочти делает именно то, что мне было нужно (и реализовал свой собственный синтаксический анализатор, так как я не понял, что он существует, но на самом деле я должен был использовать стандартный метод).

Я бы хотел, чтобы мои пользователи могли указывать запрос в файле конфигурации. Синтаксис кажется достаточно интуитивно понятным, поэтому я могу ожидать, что мои пользователи, не являющиеся программистами (но инженеры), поймут это.

Не хватает только одной вещи: способ выделить все в кадре данных. Иногда мои пользователи хотят использовать каждую строку, чтобы они добавили «All» или что-то еще в этот параметр конфигурации. Фактически это будет вариант по умолчанию.

Я попытался df.query ('True'), но это вызвало KeyError. Я попытался df.query ('1'), но это вернуло строку с индексом 1. Пустая строка вызвала ValueError.

Единственное, о чем я могу думать, это: 1) ставить условие if каждый раз, когда мне нужно выполнить запрос такого типа (вероятно, 3 или 4 раза в коде), или 2) подкласс DataFrame и либо переопределить запрос, либо добавить метод query_with_all:

import pandas as pd

class MyDataFrame(pd.DataFrame):
    def query_with_all(self, query_string):
        if query_string.lower() == 'all':
            return self
        else:
            return self.query(query_string)

А потом каждый раз используй свой собственный класс вместо одного панды. Это единственный способ сделать это?

Ответы на вопрос(2)

Ваш ответ на вопрос