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 of and,
or, and not with the same semantics as the
corresponding bitwise operators. Series and
DataFrame objects are supported and behave as they would
with plain ol’ Python evaluation.

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, default ‘numexpr’, {‘python’, ‘numexpr’}

The engine used to evaluate the expression. Supported engines are

'numexpr': This default engine evaluates pandas objects using

numexpr for large speed ups in complex expressions
with large frames.

'python': Performs operations as if you had eval‘d in top

level 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 the
query() method to inject the
index and columns
variables that refer to their respective DataFrame
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.