제2회 빅데이터 분석기사(실기) - 작업형:제1유형(파이썬) 1
작성자 정보
- ◆딥셀◆ 작성
- 작성일
컨텐츠 정보
- 25,335 조회
본문
실기 안내 페이지에 있는 작업형 제1유형의 예제는 다음과 같습니다.
[예제]
mtcars 데이터셋(mtcars.csv)의 qsec 컬럼을 최소최대 척도(Min-Max Scale)로 변환한 후 0.5보다 큰 값을 가지는 레코드 수를 구하시오.
이 문제를 분해해 보면 다음과 같은 절차로 나눌 수 있습니다.
1) 파일에 저장된 데이터 읽어 오기
2) 최소최대 척도(Min-Max Scale)로 변환
3) 0.5보다 큰 값을 가지는 데이터의 수 구하기
작업 방법을 간단하게 정리해 보면 다음과 같습니다.
1) pandas의 read_csv() 함수를 이용하여 mtcars.csv를 읽어옵니다.
2) sklearn에 있는 MinMaxScaler 모듈을 이용하여 스케일을 변환합니다.
3) pandas DataFrame에 있는 apply 메서드와 람다 함수를 써서 0.5 이상인 레코드의 값을 구합니다.
이 외에도 다른 방법들이 많이 있겠지만 실기시험 환경에서 사용할 수 있는 패키지나 모듈을 사용하는 것이 좋을 것 같습니다.
실기시험에서 사용할 수 있는 패키지와 모듈에 대해서는 따로 정리하겠습니다.
실제 코딩 작업을 해보겠습니다.
1) 데이터 읽어 오기
import pandas as pd
mtcars_df = pd.read_csv('data/mtcars.csv')
mtcars_num_df = mtcars_df.iloc[:, 1:]
결과 -> data/mtcars.csv에 저장된 데이터가 mtcars_df 변수에 데이터프레임 타입으로 저장됩니다. 데이터프레임의 첫 번째 컬럼이 숫자가 아닌 문자열이므로 제거한 후에 mtcars_num_df에 저장합니다.
2) 최소최대 척도(Min-Max Scale)로 변환
from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler()
scaler.fit(mtcars_num_df)
mtcars_scaled_df = pd.DataFrame(scaler.transform(mtcars_num_df), columns=mtcars_num_df.columns)
결과 -> sklearn의 MinMaxScaler를 이용하여 전체 데이터프레임을 변환합니다. 그 결과를 mtcars_scaled_df에 저장합니다.
3) qsec의 값이 0.5보다 큰(초과) 행의 개수 세기
answer = len(mtcars_scaled_df[mtcars_scaled_df.qsec > 0.5])
결과 -> qsec의 값이 0.5보다 큰 행들만 필터링 한 후 행들의 개수(length)를 구하여 answer 변수에 저장합니다.
마지막으로 answer에 저장된 값을 출력합니다.
print(answer)
전체 코드를 정리하면 아래와 같습니다.
# 1)
import pandas as pd
mtcars_df = pd.read_csv('data/mtcars.csv')
mtcars_num_df = mtcars_df.iloc[:, 1:]
# 2)
from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler()
scaler.fit(mtcars_num_df)
mtcars_scaled_df = pd.DataFrame(scaler.transform(mtcars_num_df), columns=mtcars_num_df.columns)
# 3)
answer = len(mtcars_scaled_df[mtcars_scaled_df.qsec > 0.5])
print(answer)
이 코드의 실행 결과는 9가 나옵니다. 이렇게 요구하는 값만 출력하도록 하면 되는 것 같습니다.
이상은 간결하게 답을 구하는 작업이었습니다. 실제 시험에서는 이렇게 간결하게 원하는 답만 출력하도록 하면 될 것 같습니다.
하지만 시험 준비를 하고 공부를 할 때는 각 각의 의미를 이해해야 합니다. 문제는 어떻게 나올 지 모르므로 원리를 이해하고 응용할 수 있는 능력을 키워야 합니다.
다음에는 이 문제를 풀기위해 알아야 할 내용들을 다루어 보겠습니다.
관련자료
-
이전
-
다음