У меня есть файл конфигурации yaml, который должен использоваться клиентами, и его легко редактировать.В файле yaml есть несколько правил:
variables:
used_often: ['good','bad', 3]
rules:
- dataframe_name: my_name
variables:
consequence: used_often
query: 'column_a = 5 and column_b in ${consequence} and column_c != 1'
output: {'column_d': 1}
- more rules like this
Как вы можете видеть здесь, я хочу отфильтровать 3 столбца в df my_name
, где column_a = 5
и т. Д., А затем в результате этого фильтра добавить/ изменить column_d
, чтобы все строки, соответствующие запросу, имели column_d = 1
.
Мой вопрос заключается в том, как сделать запрос более простым для фильтрации с помощью панд.В нынешнем виде приведенный выше запрос должен заканчиваться пандами, подобными этим:
my_name[(my_name["column_a"] == 5) &
(my_name["column_b"].isin(['good','bad', 3])) &
(my_name["column_c"] != 1)]
Так что мне нужно много обработать, чтобы интерпретировать запрос в yaml.Существуют ли какие-либо инструменты, которые могли бы помочь мне, или более эффективные способы форматирования запроса (у меня есть полная свобода в создании файла yaml, если клиент может его легко написать)?
Спасибо!