Closed
Description
From the example at http://pandas.pydata.org/pandas-docs/dev/generated/pandas.DataFrame.query.html:
from numpy.random import randn
from pandas import DataFrame
df = DataFrame(randn(10, 2), columns=list('ab'))
df.query('a > b')
gives me:
---------------------------------------------------------------------------
NameResolutionError Traceback (most recent call last)
<ipython-input-19-47040e53b0e7> in <module>()
2 from pandas import DataFrame
3 df = DataFrame(randn(10, 2), columns=list('ab'))
----> 4 df.query('a > b')
/usr/local/lib/python2.7/dist-packages/pandas/core/frame.pyc in query(self, expr, **kwargs)
1778 "query expression")
1779
-> 1780 res = self.eval(expr, **kwargs)
1781
1782 try:
/usr/local/lib/python2.7/dist-packages/pandas/core/frame.pyc in eval(self, expr, **kwargs)
1829 kwargs['local_dict'] = _ensure_scope(resolvers=resolvers, **kwargs)
1830 kwargs['target'] = self
-> 1831 return _eval(expr, **kwargs)
1832
1833 def _slice(self, slobj, axis=0, raise_on_error=False, typ=None):
/usr/local/lib/python2.7/dist-packages/pandas/computation/eval.pyc in eval(expr, parser, engine, truediv, local_dict, global_dict, resolvers, level, target)
206 eng = _engines[engine]
207 eng_inst = eng(parsed_expr)
--> 208 ret = eng_inst.evaluate()
209
210 # assign if needed
/usr/local/lib/python2.7/dist-packages/pandas/computation/engines.pyc in evaluate(self)
48
49 # make sure no names in resolvers and locals/globals clash
---> 50 self.pre_evaluate()
51 res = self._evaluate()
52 return _reconstruct_object(self.result_type, res, self.aligned_axes,
/usr/local/lib/python2.7/dist-packages/pandas/computation/engines.pyc in pre_evaluate(self)
31
32 def pre_evaluate(self):
---> 33 self.expr.check_name_clashes()
34
35 def evaluate(self):
/usr/local/lib/python2.7/dist-packages/pandas/computation/expr.pyc in check_name_clashes(self)
797 lcl_keys = frozenset(env.locals.keys()) & names
798 gbl_keys = frozenset(env.globals.keys()) & names
--> 799 _check_disjoint_resolver_names(res_keys, lcl_keys, gbl_keys)
800
801 def add_resolvers_to_locals(self):
/usr/local/lib/python2.7/dist-packages/pandas/computation/expr.pyc in _check_disjoint_resolver_names(resolver_keys, local_keys, global_keys)
39 if res_locals:
40 msg = "resolvers and locals overlap on names {0}".format(res_locals)
---> 41 raise NameResolutionError(msg)
42
43 res_globals = list(com.intersection(resolver_keys, global_keys))
NameResolutionError: resolvers and locals overlap on names ['a']
This is with 0.13
.