parameterize_frame

Reference Documentation

class hamilton.experimental.decorators.parameterize_frame.parameterize_frame(parameterization: DataFrame)

EXPERIMENTAL! Instantiates a parameterize_extract decorator using a dataframe to specify a set of extracts + parameterizations.

This is an experimental decorator and the API may change in the future; please provide feedback whether this API does or does not work for you.

Parameters:

parameterization – Parameterization dataframe. See below.

This is of a specific shape:

  1. Index - Level 0: list of parameter names

  2. Index - Level 1: types of things to inject, either:

    • “out” (meaning this is an output),

    • “value” (meaning this is a literal value)

    • “source” (meaning this node comes from an upstream value)

  3. Contents:

  • Each row corresponds to the index. Each of these corresponds to an output node from this.

Note your function has to take in the column-names and output a dataframe with those names – we will likely change it so that’s not the case, and it can just use the position of the columns.

Example usage:

from hamilton.experimental.decorators.parameterize_frame import parameterize_frame
df = pd.DataFrame(
[
   ["outseries1a", "outseries2a", "inseries1a", "inseries2a", 5.0],
   ["outseries1b", "outseries2b", "inseries1b", "inseries2b", 0.2],
],
# specify column names corresponding to function arguments and
# if outputting multiple columns, output dataframe columns.
columns=[
   ["output1", "output2", "input1", "input2", "input3"],
   ["out", "out", "source", "source", "value"],
])

@parameterize_frame(df)
def my_func(
    input1: pd.Series, input2: pd.Series, input3: float
) -> pd.DataFrame:
   ...
__init__(parameterization: DataFrame)

Initializes a parameterized_extract decorator. Note this currently works for series, but the plan is to extend it to fields as well…

Parameters:
  • extract_config – A configuration consisting of a list ParameterizedExtract classes These contain the information of a @parameterized and @extract… together.

  • reassign_columns – Whether we want to reassign the columns as part of the function.