我有一个任务,需要根据用户指定的逻辑表达式筛选Pandas DataFrame。现在,我看到了一个名为PyParser或LARK的模块,我想使用它们,但我无法弄清楚如何设置它们。
我有几个运算符,如
示例表达式:
我有几个运算符,如
CONTAINS
、EQUAL
、FUZZY_MATCH
等。此外,我想将一些表达式组合成更复杂的表达式。示例表达式:
ColumnA CONTAINS [1, 2, 3] AND (ColumnB FUZZY_MATCH 'bla' OR ColumnC EQUAL 45)
因此,我希望有一些结构化的字典或列表,按照执行顺序列出操作级别。因此,这个示例表达式的期望结果应该是:[['ColumnA', 'CONTAINS', '[1, 2, 3]'], 'AND', [['ColumnB', 'FUZZY_MATCH', 'bla'], OR, ['ColumnC', 'EQUAL', '45']]]
或以字典形式:
{
'EXPR1': {
'col': 'ColumnA',
'oper': 'CONTAINS',
'value': '[1, 2, 3]']
},
'OPERATOR': 'AND',
'EXPR2': {
'EXPR21': {
'col': 'ColumnB',
'oper': 'FUZZY_MATCH',
'value': 'bla'
},
'OPERATOR': OR,
'EXPR22': {
'col': 'ColumnC',
'oper': 'EQUAL',
'value': '45'
}
}
}
或者类似这样。如果你有更好的结果结构方式,请提出建议。我还是相对新手,所以我确信这可以改进。