Study/kaggle

캐글 타이타닉 Titanic - 7. EDA - FamilySize

Do잇 2023. 3. 12. 16:51

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인의 탑승객의 경우에도 높은 생존율을 보이지는 않는다.