Topics in this subject
Pandas 1 min read Updated 4 Aug 2026

Project 4 — Titanic-style Analysis

titanic = pd.DataFrame({

titanic = pd.DataFrame({
    'Survived':[0,1,1,1,0,0], 'Pclass':[3,1,3,1,3,2],
    'Sex':['male','female','female','female','male','male'],
    'Age':[22,38,26,35,None,54], 'Fare':[7.25,71.3,7.9,53.1,8.05,51.9]})

# Fill missing ages with median by class
titanic['Age'] = titanic.groupby('Pclass')['Age'].transform(
    lambda s: s.fillna(s.median()))

# Survival rate by sex and class
titanic.groupby(['Sex','Pclass'])['Survived'].mean().unstack()

# Feature engineering: age band + is_child
titanic['AgeBand'] = pd.cut(titanic['Age'], [0,12,18,40,100],
                            labels=['child','teen','adult','senior'])
titanic['IsChild'] = (titanic['Age'] < 13).astype(int)

Insight: groupby().mean() on a 0/1 target gives survival rate; pd.cut bins continuous features for modeling.