pandas-0.25.0rc0 problem on Python-3.8: 'PandasExprVisitor' object has no attribute 'visit_Constant' · Issue #27261 · pandas-dev/pandas (original ) (raw )import pandas as pd
import numpy as np
idx = pd.date_range('2000', '2005', freq='d', closed='left')
datas = pd.DataFrame({'Color': [ 'green' if x> 1 else 'red' for x in np.random.randn(len(idx))],
'Measure': np.random.randn(len(idx)), 'Year': idx.year},
index=idx.date)
datas.query('Measure > 0').groupby(['Color','Year']).size().unstack()
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-18-6c03ccdf9365> in <module>
6 'Measure': np.random.randn(len(idx)), 'Year': idx.year},
7 index=idx.date)
----> 8 datas.query('Measure > 0').groupby(['Color','Year']).size().unstack()
C:\WinP\bd38\bu\WPy32-3800b2\python-3.8.0b2\lib\site-packages\pandas\core\frame.py in query(self, expr, inplace, **kwargs)
3190 kwargs["level"] = kwargs.pop("level", 0) + 1
3191 kwargs["target"] = None
-> 3192 res = self.eval(expr, **kwargs)
3193
3194 try:
C:\WinP\bd38\bu\WPy32-3800b2\python-3.8.0b2\lib\site-packages\pandas\core\frame.py in eval(self, expr, inplace, **kwargs)
3306 kwargs["target"] = self
3307 kwargs["resolvers"] = kwargs.get("resolvers", ()) + tuple(resolvers)
-> 3308 return _eval(expr, inplace=inplace, **kwargs)
3309
3310 def select_dtypes(self, include=None, exclude=None):
C:\WinP\bd38\bu\WPy32-3800b2\python-3.8.0b2\lib\site-packages\pandas\core\computation\eval.py in eval(expr, parser, engine, truediv, local_dict, global_dict, resolvers, level, target, inplace)
320 )
321
--> 322 parsed_expr = Expr(expr, engine=engine, parser=parser, env=env, truediv=truediv)
323
324 # construct the engine and evaluate the parsed expression
C:\WinP\bd38\bu\WPy32-3800b2\python-3.8.0b2\lib\site-packages\pandas\core\computation\expr.py in __init__(self, expr, engine, parser, env, truediv, level)
825 self.env.scope["truediv"] = truediv
826 self._visitor = _parsers[parser](self.env, self.engine, self.parser)
--> 827 self.terms = self.parse()
828
829 @property
C:\WinP\bd38\bu\WPy32-3800b2\python-3.8.0b2\lib\site-packages\pandas\core\computation\expr.py in parse(self)
842 def parse(self):
843 """Parse an expression"""
--> 844 return self._visitor.visit(self.expr)
845
846 @property
C:\WinP\bd38\bu\WPy32-3800b2\python-3.8.0b2\lib\site-packages\pandas\core\computation\expr.py in visit(self, node, **kwargs)
439 method = "visit_" + node.__class__.__name__
440 visitor = getattr(self, method)
--> 441 return visitor(node, **kwargs)
442
443 def visit_Module(self, node, **kwargs):
C:\WinP\bd38\bu\WPy32-3800b2\python-3.8.0b2\lib\site-packages\pandas\core\computation\expr.py in visit_Module(self, node, **kwargs)
445 raise SyntaxError("only a single expression is allowed")
446 expr = node.body[0]
--> 447 return self.visit(expr, **kwargs)
448
449 def visit_Expr(self, node, **kwargs):
C:\WinP\bd38\bu\WPy32-3800b2\python-3.8.0b2\lib\site-packages\pandas\core\computation\expr.py in visit(self, node, **kwargs)
439 method = "visit_" + node.__class__.__name__
440 visitor = getattr(self, method)
--> 441 return visitor(node, **kwargs)
442
443 def visit_Module(self, node, **kwargs):
C:\WinP\bd38\bu\WPy32-3800b2\python-3.8.0b2\lib\site-packages\pandas\core\computation\expr.py in visit_Expr(self, node, **kwargs)
448
449 def visit_Expr(self, node, **kwargs):
--> 450 return self.visit(node.value, **kwargs)
451
452 def _rewrite_membership_op(self, node, left, right):
C:\WinP\bd38\bu\WPy32-3800b2\python-3.8.0b2\lib\site-packages\pandas\core\computation\expr.py in visit(self, node, **kwargs)
439 method = "visit_" + node.__class__.__name__
440 visitor = getattr(self, method)
--> 441 return visitor(node, **kwargs)
442
443 def visit_Module(self, node, **kwargs):
C:\WinP\bd38\bu\WPy32-3800b2\python-3.8.0b2\lib\site-packages\pandas\core\computation\expr.py in visit_Compare(self, node, **kwargs)
742 op = self.translate_In(ops[0])
743 binop = ast.BinOp(op=op, left=node.left, right=comps[0])
--> 744 return self.visit(binop)
745
746 # recursive case: we have a chained comparison, a CMP b CMP c, etc.
C:\WinP\bd38\bu\WPy32-3800b2\python-3.8.0b2\lib\site-packages\pandas\core\computation\expr.py in visit(self, node, **kwargs)
439 method = "visit_" + node.__class__.__name__
440 visitor = getattr(self, method)
--> 441 return visitor(node, **kwargs)
442
443 def visit_Module(self, node, **kwargs):
C:\WinP\bd38\bu\WPy32-3800b2\python-3.8.0b2\lib\site-packages\pandas\core\computation\expr.py in visit_BinOp(self, node, **kwargs)
561
562 def visit_BinOp(self, node, **kwargs):
--> 563 op, op_class, left, right = self._maybe_transform_eq_ne(node)
564 left, right = self._maybe_downcast_constants(left, right)
565 return self._maybe_evaluate_binop(op, op_class, left, right)
C:\WinP\bd38\bu\WPy32-3800b2\python-3.8.0b2\lib\site-packages\pandas\core\computation\expr.py in _maybe_transform_eq_ne(self, node, left, right)
482 left = self.visit(node.left, side="left")
483 if right is None:
--> 484 right = self.visit(node.right, side="right")
485 op, op_class, left, right = self._rewrite_membership_op(node, left, right)
486 return op, op_class, left, right
C:\WinP\bd38\bu\WPy32-3800b2\python-3.8.0b2\lib\site-packages\pandas\core\computation\expr.py in visit(self, node, **kwargs)
438
439 method = "visit_" + node.__class__.__name__
--> 440 visitor = getattr(self, method)
441 return visitor(node, **kwargs)
442
AttributeError: 'PandasExprVisitor' object has no attribute 'visit_Constant'