Source code for featuretools.primitives.standard.aggregation.n_unique_weeks

from woodwork.column_schema import ColumnSchema
from woodwork.logical_types import Datetime, Integer

from featuretools.primitives.base import AggregationPrimitive


[docs]class NUniqueWeeks(AggregationPrimitive): """Determines the number of unique weeks. Description: Given a list of datetimes, return the number of unique weeks (Monday-Sunday). NUniqueWeeks counts by absolute week, not week of year, so the first week of 2018 and the first week of 2019 count as two unique values. Examples: >>> from datetime import datetime >>> n_unique_weeks = NUniqueWeeks() >>> times = [datetime(2018, 2, 2), ... datetime(2019, 1, 1), ... datetime(2019, 2, 1), ... datetime(2019, 2, 1), ... datetime(2019, 2, 3), ... datetime(2019, 2, 21)] >>> n_unique_weeks(times) 4 """ name = "n_unique_weeks" input_types = [ColumnSchema(logical_type=Datetime)] return_type = ColumnSchema(logical_type=Integer, semantic_tags={"numeric"}) stack_on_self = False default_value = 0 def get_function(self): def n_unique_weeks(x): return x.dt.to_period("W").nunique() return n_unique_weeks