연습장

연습장

Associate 실전예제

데이터 다루기

  • train.csv 파일을 읽어 df_train 이름의 데이터 프레임으로 저장하세요.

  • data.json 파일을 읽어 df_json 이름으로 저장하세요.

  • sample.xlsx 파일을 읽어 df_excel로 저장하세요

  • df_train과 df_test를 ‘PassengerId’를 기준으로 inner 방식 병합한 df_all로 저장하세요.

  • df_train의 앞쪽 5개 데이터를 출력하세요

  • df_train의 뒤쪽 5개 데이터를 출력하세요

  • df_train의 데이터 프레임 크기를 확인하세요

  • df_train의 데이터 요약정보(타입, 결측치)를 출력하세요

  • df_train의 수치형 요약 통계를 출력하세요

  • df_train에서 결측값이 있는 Column의 개수를 확인하세요

  • df_train의 ‘Embarked’ Column 값의 개수를 세어보세요.

  • df_train의 결측값을 True/False로 나타나도록 하세요.

  • df_train에서 수치형 Column만 서낵해 df_numeric에 저장하세요.

  • df_numeric의 Column들 간 상관계수를 구하세요.

시각화하기

  • Seaborn를 활용하여, 승객의 성별에 대해 분포를 보여주는 countplot 그래프를 그리고, 해당 그래프로 성별에 따를 탑승자 수의 차이를 시각적으로 확인하세요.
import seaborn as sns
import matplotlib.pyplot as plt

sns.countplot(x='sex', data=train_df)
plt.title('count of Passsengers by sex')
plt.show()
  • seaborn을 활용하고, Age에 대한 히스토그램, 밀도 곡선(KDE)를 함께 그린 후, 출력된 그래프에서 옳지 않은 선택지를 골라 변수를 저장하세요.
  1. 나이 분포는 20~30대에 가장 많이 몰려있다
  2. 나이는 정규분포에 가까우며, 평균과 중앙값이 비슷해보인다
  3. Age 컬럼에는 결측치가 없다로 표시하라.
sns.hisplot(train_df['Age'].dropna(), kde=True) # 결측치 X
plt.title("Distribution of Age")
plt.show()
# answer:3
  • Seaborn 활용, Age와 Fare(요금) 간의 관계를 joinplot으로 확인 후 출력된 그래프에 대한 해석으로 옳지 않은 것을 골라 답안23 변수에 저장하세요.
  1. Fare가 높은 승객은 주로 젊은 연령대에 분포한다.
  2. 나이와 요금 사이에는 명확한 선형 관계까 없다.
  3. Fare가 300을 초과하는 승객은 거의 없다.
sns.jointplot(X='Age', y = 'Fare', data=train_df)
# 얘는 show() 없어도 됨
# answer: 1
  • Seaborn 활용, 수치형 변수 간의 상관관계를 heatmap으로 시각화 후 출력된 히트맵에 대한 해석으로 옳지 않은 선택지를 골라 답안24 변수에 저장하세요.
  1. Survived와 가장 높은 양의 상관관계를 가지는 변수를 Fare다.
  2. Sibsp 변수는 Survived와 음의 상관관계를 갖는다
  3. 모든 변수들은 서로 강한 양의 상관을 보인다.
numeric_corr = train_df.select_dtypes(include=np.number).corr()
sns.heatmap(numeric_corr, annot=True, cmap='coolwarm')
plt.title("Correlation between numberic variables")
plt.show()

#answer = 3
  • df 데이터 프레임에서 ‘Fare’ 컬럼이 300 이상인 이상치를 제거하고, ‘RID’컬럼도 삭제 후 df_temp에 저장하세요
df_temp = df[df['Fare'] < 300].copy()
df_temp.drop(columns=['RID'], inplace=True)