Source code for featuretools.primitives.standard.aggregation.first_last_time_delta
import numpy as np
from woodwork.column_schema import ColumnSchema
from woodwork.logical_types import Datetime, Double
from featuretools.primitives.base import AggregationPrimitive
[docs]class FirstLastTimeDelta(AggregationPrimitive):
"""Determines the time between the first and last time value
in seconds.
Examples:
>>> from datetime import datetime
>>> first_last_time_delta = FirstLastTimeDelta()
>>> first_last_time_delta([
... datetime(2011, 4, 9, 10, 30, 0),
... datetime(2011, 4, 9, 10, 30, 15),
... datetime(2011, 4, 9, 10, 30, 35)])
35.0
"""
name = "first_last_time_delta"
input_types = [ColumnSchema(logical_type=Datetime, semantic_tags={"time_index"})]
return_type = ColumnSchema(logical_type=Double, semantic_tags={"numeric"})
uses_calc_time = False
stack_on_self = False
default_value = 0
def get_function(self):
def first_last_time_delta(datetime_col):
datetime_col = datetime_col.dropna()
if datetime_col.empty:
return np.nan
delta = datetime_col.iloc[-1] - datetime_col.iloc[0]
return delta.total_seconds()
return first_last_time_delta