Source code for featuretools.primitives.standard.transform.datetime.date_to_timezone

import numpy as np
from woodwork.column_schema import ColumnSchema
from woodwork.logical_types import Categorical, Datetime

from featuretools.primitives.base import TransformPrimitive


[docs]class DateToTimeZone(TransformPrimitive): """Determines the timezone of a datetime. Description: Given a list of datetimes, extract the timezone from each one. Looks for the `tzinfo` attribute on `datetime.datetime` objects. If the datetime has no timezone or the date is missing, return `NaN`. Examples: >>> from datetime import datetime >>> from pytz import timezone >>> date_to_time_zone = DateToTimeZone() >>> dates = [datetime(2010, 1, 1, tzinfo=timezone("America/Los_Angeles")), ... datetime(2010, 1, 1, tzinfo=timezone("America/New_York")), ... datetime(2010, 1, 1, tzinfo=timezone("America/Chicago")), ... datetime(2010, 1, 1)] >>> date_to_time_zone(dates).tolist() ['America/Los_Angeles', 'America/New_York', 'America/Chicago', nan] """ name = "date_to_time_zone" input_types = [ColumnSchema(logical_type=Datetime)] return_type = ColumnSchema(logical_type=Categorical, semantic_tags={"category"}) def get_function(self): def date_to_time_zone(x): return x.apply(lambda x: x.tzinfo.zone if x.tzinfo else np.nan) return date_to_time_zone