Source code for featuretools.primitives.standard.aggregation.n_unique_months
from woodwork.column_schema import ColumnSchema
from woodwork.logical_types import Datetime, Integer
from featuretools.primitives.base import AggregationPrimitive
[docs]class NUniqueMonths(AggregationPrimitive):
"""Determines the number of unique months.
Description:
Given a list of datetimes, return the number of unique months.
NUniqueMonths counts absolute month, not month of year, so the
same month in two different years is treated as different. (i.e.
Feb 2017 is different than Feb 2019.)
Examples:
>>> from datetime import datetime
>>> n_unique_months = NUniqueMonths()
>>> times = [datetime(2019, 1, 1),
... datetime(2019, 1, 2),
... datetime(2019, 1, 3),
... datetime(2019, 2, 1),
... datetime(2018, 2, 1)]
>>> n_unique_months(times)
3
"""
name = "n_unique_months"
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_months(x):
return x.dt.to_period("M").nunique()
return n_unique_months