Source code for featuretools.primitives.standard.transform.postal.two_digit_postal_code

import pandas as pd
from woodwork.column_schema import ColumnSchema
from woodwork.logical_types import Categorical, PostalCode

from featuretools.primitives.base import TransformPrimitive
from featuretools.utils.gen_utils import Library


[docs]class TwoDigitPostalCode(TransformPrimitive): """Returns the two digit prefix of a given postal code. Description: Given a list of postal codes, returns the two digit prefix for each postal code. Examples: >>> two_digit_postal_code = TwoDigitPostalCode() >>> two_digit_postal_code(['92432', '34514']).tolist() ['92', '34'] """ name = "two_digit_postal_code" input_types = [ColumnSchema(logical_type=PostalCode)] compatibility = [Library.PANDAS, Library.DASK, Library.SPARK] return_type = ColumnSchema(logical_type=Categorical, semantic_tags={"category"}) description_template = "The two digit postal code prefix of {}" def get_function(self): def two_digit_postal_code(postal_codes): def transform_postal_code(pc): return str(pc)[:2] if pd.notna(pc) else pd.NA return postal_codes.apply(transform_postal_code) return two_digit_postal_code