def transform(self, X, y=None):
# Suppress SettingWithCopyWarning (alternatively: add a X = X.copy()
with pd.option_context('mode.chained_assignment', None):
# --- Convert Embarked
mapping = {'S': 0,
'C': 1,
'Q': 2,
}
X.loc[:, 'Embarked'] = X.loc[:, 'Embarked'].replace(mapping, inplace=False)
# --- Convert Sex
mapping = {'female': 0,
'male': 1
}
X.loc[:, 'Sex'] = X['Sex'].replace(mapping, inplace=False)
# --- Convert Name to Title
X.loc[:, 'Title'] = X['Name'].map(lambda name: name.split(',')[1].split('.')[0].strip())
# a map of more aggregated titles
mapping = {
"Capt": 0, # Officer
"Col": 0, # Officer
"Major": 0, # Officer
"Jonkheer": 1, # Royalty
"Don": 1, # Royalty
"Sir": 1, # Royalty
"Dr": 0, # Officer
"Rev": 0, # Officer
"the Countess": 1, # Royalty
"Dona": 1, # Royalty
"Mme": 2, # "Mrs"
"Mlle": 3, # "Miss"
"Ms": 2, # "Mrs"
"Mr": 4, # "Mr"
"Mrs": 2, # "Mrs"
"Miss": 3, # "Miss"
"Master": 5, # "Master"
"Lady": 1 # "Royalty"
}
X.loc[:, 'Title'] = X['Title'].map(mapping)
X = X.drop('Name', 1)
return X
评论列表
文章目录