빅데이터분석기사
실기 분류

제2회 빅데이터 분석기사(실기) - 작업형:제1유형(파이썬) 1

작성자 정보

  • ◆딥셀◆ 작성
  • 작성일

컨텐츠 정보

본문

실기 안내 페이지에 있는 작업형 제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가 나옵니다. 이렇게 요구하는 값만 출력하도록 하면 되는 것 같습니다.


이상은 간결하게 답을 구하는 작업이었습니다. 실제 시험에서는 이렇게 간결하게 원하는 답만 출력하도록 하면 될 것 같습니다.

하지만 시험 준비를 하고 공부를 할 때는 각 각의 의미를 이해해야 합니다. 문제는 어떻게 나올 지 모르므로 원리를 이해하고 응용할 수 있는 능력을 키워야 합니다.


다음에는 이 문제를 풀기위해 알아야 할 내용들을 다루어 보겠습니다.

관련자료

댓글 0
등록된 댓글이 없습니다.

최근글


새댓글


알림 0