pandas.eval¶
-
pandas.
eval
(expr, parser='pandas', engine=None, truediv=True, local_dict=None, global_dict=None, resolvers=(), level=0, target=None, inplace=None)[source]¶ Evaluate a Python expression as a string using various backends.
The following arithmetic operations are supported:
+
,-
,*
,/
,**
,%
,//
(python engine only) along with the following boolean operations:|
(or),&
(and), and~
(not). Additionally, the'pandas'
parser allows the use ofand
,or
, andnot
with the same semantics as the corresponding bitwise operators.Series
andDataFrame
objects are supported and behave as they would with plain ol’ Python evaluation.Parameters: expr : str or unicode
The expression to evaluate. This string cannot contain any Python statements, only Python expressions.
parser : string, default ‘pandas’, {‘pandas’, ‘python’}
The parser to use to construct the syntax tree from the expression. The default of
'pandas'
parses code slightly different than standard Python. Alternatively, you can parse an expression using the'python'
parser to retain strict Python semantics. See the enhancing performance documentation for more details.engine : string or None, default ‘numexpr’, {‘python’, ‘numexpr’}
The engine used to evaluate the expression. Supported engines are
None : tries to use
numexpr
, falls back topython
'numexpr'
: This default engine evaluates pandas objects usingnumexpr for large speed ups in complex expressions with large frames.
'python'
: Performs operations as if you hadeval
‘d in toplevel python. This engine is generally not that useful.
More backends may be available in the future.
truediv : bool, optional
Whether to use true division, like in Python >= 3
local_dict : dict or None, optional
A dictionary of local variables, taken from locals() by default.
global_dict : dict or None, optional
A dictionary of global variables, taken from globals() by default.
resolvers : list of dict-like or None, optional
A list of objects implementing the
__getitem__
special method that you can use to inject an additional collection of namespaces to use for variable lookup. For example, this is used in thequery()
method to inject theindex
andcolumns
variables that refer to their respectiveDataFrame
instance attributes.level : int, optional
The number of prior stack frames to traverse and add to the current scope. Most users will not need to change this parameter.
target : a target object for assignment, optional, default is None
essentially this is a passed in resolver
inplace : bool, default True
If expression mutates, whether to modify object inplace or return copy with mutation.
WARNING: inplace=None currently falls back to to True, but in a future version, will default to False. Use inplace=True explicitly rather than relying on the default.
Returns: ndarray, numeric scalar, DataFrame, Series
See also
Notes
The
dtype
of any objects involved in an arithmetic%
operation are recursively cast tofloat64
.See the enhancing performance documentation for more details.