Source code for featuretools.primitives.standard.transform.numeric.diff

from woodwork.column_schema import ColumnSchema

from featuretools.primitives.base import TransformPrimitive


[docs]class Diff(TransformPrimitive): """Computes the difference between the value in a list and the previous value in that list. Args: periods (int): The number of periods by which to shift the index row. Default is 0. Periods correspond to rows. Description: Given a list of values, compute the difference from the previous item in the list. The result for the first element of the list will always be `NaN`. Examples: >>> diff = Diff() >>> values = [1, 10, 3, 4, 15] >>> diff(values).tolist() [nan, 9.0, -7.0, 1.0, 11.0] You can specify the number of periods to shift the values >>> values = [1, 2, 4, 7, 11, 16] >>> diff_periods = Diff(periods = 1) >>> diff_periods(values).tolist() [nan, nan, 1.0, 2.0, 3.0, 4.0] """ name = "diff" input_types = [ColumnSchema(semantic_tags={"numeric"})] return_type = ColumnSchema(semantic_tags={"numeric"}) uses_full_dataframe = True description_template = "the difference from the previous value of {}"
[docs] def __init__(self, periods=0): self.periods = periods
def get_function(self): def pd_diff(values): return values.shift(self.periods).diff() return pd_diff