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