Family = SibSp + Parch
df_train['FamilySize'] = df_train['SibSp'] + df_train['Parch'] +1
df_train['SibSp']와 df_train['Parch']이 모두 숫자로 되어있다. => 판다스의 시리즈
가족단위에 본인을 포함해야하니까 +1을 해주는 것.
print('Maximum size of Family:', df_train['FamilySize'].max())
print('Minimum size of Family:', df_train['FamilySize'].min())
Maximum size of Family: 11
Minimum size of Family: 1
💡 판다스 시리즈의 기능은 사칙 연산이 가능하다. 더하기, 빼기, 곱하기, 나누기가 모두 가능하다.
f, ax = plt.subplots(1,3,figsize = (40,10))
sns.countplot('FamilySize', data = df_train, ax=ax[0])
ax[0].set_title('(1) No of Passenger Boarded', y=1.02)
sns.countplot('FamilySize', hue='Survived', data=df_train, ax=ax[1])
ax[1].set_title('(2) Survived countplot depending on FamilySize', y=1.02)
df_train[['FamilySize', 'Survived']].groupby(['FamilySize'],as_index=True).mean().sort_values(by='Survived', ascending=False).plot.bar(ax=ax[2])
ax[2].set_title('(3) Survived rate depending on FamilySize', y=1.02)
plt.subplots_adjust(wspace=0.2, hspace=0.5)
plt.show()
📝 해석
(1)그래프. 1인 탑승객이 500명이 넘는다. 가장 많은 가족 수는 11명이다.
(2)그래프. 가족이 많을수록 생존율이 떨어지는 것을 볼 수 있다.
(3)그래프의 경우 countplot이 아니라 가족의 수로 groupby를 해주어 Survived의 평균을 구해주고 Survived를 기준으로 정렬해주었다. 그래프를 보면 가장 많은 11명의 가족들은 생존율이 0%이다. 4인 가족의 경우 생존율이 70%가 넘는다.
1인의 탑승객의 경우에도 높은 생존율을 보이지는 않는다.
'Study > kaggle' 카테고리의 다른 글
캐글 타이타닉 Titanic - 9. Feature engineering - Fill Null in Age (0) | 2023.03.16 |
---|---|
캐글 타이타닉 Titanic - 8. EDA - Fare, Cabin, Ticket (0) | 2023.03.14 |
캐글 타이타닉 Titanic - 6. EDA - Embarked (0) | 2023.03.11 |
캐글 타이타닉 Titanic - 5. Age, Sex, Pclass (violinplot) (0) | 2023.03.11 |
캐글 타이타닉 Titanic - 4. EDA - Age (2) | 2023.03.11 |