Source code for featuretools.primitives.standard.transform.full_name_to_title
from woodwork.column_schema import ColumnSchema
from woodwork.logical_types import Categorical, PersonFullName
from featuretools.primitives.base import TransformPrimitive
[docs]class FullNameToTitle(TransformPrimitive):
"""Determines the title from a person's name.
Description:
Given a list of names, determines the title, or
prefix of each name (e.g. "Mr", "Mrs", etc). If
no title is found, returns `NaN`.
Examples:
>>> full_name_to_title = FullNameToTitle()
>>> names = ['Spector, Mr. Woolf', 'Oliva y Ocana, Dona. Fermina',
... 'Ware, Mr. Frederick', 'Peter, Michael J', 'Mr. Brown']
>>> full_name_to_title(names).to_list()
['Mr', 'Dona', 'Mr', nan, 'Mr']
"""
name = "full_name_to_title"
input_types = [ColumnSchema(logical_type=PersonFullName)]
return_type = ColumnSchema(logical_type=Categorical, semantic_tags={"category"})
def get_function(self):
def full_name_to_title(x):
pattern = r"([A-Z][a-z]+)\. "
return x.str.extract(pattern, expand=True)[0]
return full_name_to_title