데이터 탐색(EDA) 및 전처리: 분석에 앞서 적재된 데이터를 확인하여 이해하고 필요한 처리를 수행
# 적재된 데이터의 정보 확인
df.info()

# 숫자형 변수에 대한 5-Number summary 요약 수치(통계량)
df.describe()

target label 이 어떤 분포를 가지고 있는 지 확인 이진분류 문제의 경우에서, 1과 0의 분포가 어떠냐에 따라 모델의 학습이나 평가 방법이 달라 질 수 있음
# 생존여부별 데이터 건수 카운트
df['Survived'].value_counts()

# 생존여부 차트 시각화
import seaborn as sns
import matplotlib.pyplot as plt
sns.countplot(x="Survived", data=df)
plt.title("Survived")
plt.show()

# 성별 데이터 건수(승객수)
sns.countplot(x="Sex", data=df)
plt.title("Passengers by class")
plt.show()

# 성별 by 생존여부, 2개 변수에 대한 피봇 테이블
df.pivot_table(index="Survived", columns="Sex", aggfunc="size")

# 성별 by 생존여부, 2개 변수에 대한 교차 테이블
pd.crosstab(df['Sex'], df['Survived'], margins=True).style.background_gradient(cmap='summer_r')

# 성별에 따른 생존여부 차트
# -> 여성이 남성보다 생존할 가능성이 더 높게 분포함
sex_df = df.groupby(['Sex','Survived'])['Survived'].count().unstack('Survived')
sex_df.plot(kind='bar', figsize=(20,10))
plt.title('Sex')
plt.show()