pandas_paddles.closures#

Module summary#

Closures for item, attribute, and method access.

Classes

AttributeClosure(name)

Wrap df.column_name or similar access patterns.

ClosureBase(name)

Base class for wrapping attribute, item or operator/method access closures.

ItemClosure(name)

Wrap df["column_name"] or similar access patterns.

MethodClosure(name, factory_cls, *args, **kwargs)

Wrap method and operator calls.

Details#

Classes

class pandas_paddles.closures.AttributeClosure(name)[source]#

Bases: pandas_paddles.closures.ClosureBase

Wrap df.column_name or similar access patterns.

Parameters

name (str) –

__init__(name)#
Parameters

name (str) – Name of the accessed object member.

as_node(parent=None)#

Return an AST node.

class pandas_paddles.closures.ClosureBase(name)[source]#

Bases: object

Base class for wrapping attribute, item or operator/method access closures.

Parameters

name (str) –

__init__(name)[source]#
Parameters

name (str) – Name of the accessed object member.

as_node(parent=None)[source]#

Return an AST node.

class pandas_paddles.closures.ItemClosure(name)[source]#

Bases: pandas_paddles.closures.ClosureBase

Wrap df["column_name"] or similar access patterns.

Parameters

name (str) –

__init__(name)#
Parameters

name (str) – Name of the accessed object member.

as_node(parent=None)#

Return an AST node.

class pandas_paddles.closures.MethodClosure(name, factory_cls, *args, **kwargs)[source]#

Bases: pandas_paddles.closures.ClosureBase

Wrap method and operator calls.

This can also be nested, i.e. use DF or S in method arguments.

Examples

Operators:

DF["x"] <= other # or DF.x <= other

# dynamically create comparison predicate from the same data frame
DF["x"] <= DF["x"].mean()

# or use another column
DF["x"] <= DF["y"]
DF["x"] <= DF["y"].min()

Access series methods:

DF["x"].method() # or DF.x.method()

# You can also pass arguments.

DF["x"].clip(0)
DF["x"].clip(upper=0)

# You can use DF (or S) in the arguments to access the outer object
DF["x"].clip(DF["y"].min())
DF["x"].clip(upper=DF["y"].min())
Parameters
  • name (str) –

  • factory_cls (type) –

  • args (Any) –

  • kwargs (Any) –

__init__(name, factory_cls, *args, **kwargs)[source]#
Parameters
  • name (str) – Method or operator name, e.g. mean or __eq__.

  • args (Any) – (Optional) arguments for the method or operator, e.g. the second argument for a binary operator.

  • kwargs (Any) – (Optional) arguments for the method or operator, e.g. the second argument for a binary operator.

  • factory_cls (type) –

as_node(parent=None)#

Return an AST node.