[빅데이터분석기사] 실기 체험 제1유형 풀이

amure·2025년 6월 17일

빅데이터분석기사

목록 보기
1/3
post-thumbnail

문제 수정 전

문제

제공된 데이터(data/mtcars.csv)의 qsec 칼럼을 최소-최대 척도(Min-Max Scale)로 변환한 후 0.5보다 큰 값을 가지는 레코드 수를 【제출 형식】에 맞춰 답안 작성 페이지에 입력하시오.

【제출 형식】
㉠ 정수(integer)로 입력
(단, 소수점을 포함한 경우 소수점 첫째 자리에서 반올림하여 계산)
㉡ 정수 답안만 입력

데이터

제2회 빅데이터분석기사 실기 안내의 첨부파일 중 [Dataset] 작업형 제1유형.zip 파일 내 mtcars.csv를 사용합니다.

풀이

import pandas as pd

df = pd.read_csv("mtcars.csv")

# 1. qsec 컬럼을 최소-최대 척도로 변환하기
print('===== 1번 =====')
print(f'변환 전\n{df["qsec"].head()}')

from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler()
df['qsec'] = scaler.fit_transform(df[['qsec']])
print(f'\n변환 후\n{df["qsec"].head()}')

# 2. 1번 데이터에서 0.5보다 큰 값을 갖는 레코드 수
print('\n===== 2번 =====')
print(f'0.5보다 큰 값을 갖는 레코드 수: {len(df[df["qsec"] > 0.5])}')

9

문제 수정 후

문제

🔗 제1유형 문제

풀이

import pandas as pd
import numpy as np

df = pd.read_csv("data/employee_performance.csv")

# 1. 고객만족도의 결측치를 평균 고객만족도로 채우기
print('===== 1번 =====')
before_null = df['고객만족도'].isnull().sum()

df['고객만족도'] = df['고객만족도'].fillna(df['고객만족도'].mean())
after_null = df['고객만족도'].isnull().sum()

print(f'1번 수행 전: {before_null} \t1번 수행 후: {after_null}')

# 2. 근속연수가 없는 행 데이터 삭제하기
print('\n===== 2번 =====')
before_rows = df.shape[0]
before_null = df['근속연수'].isnull().sum()

print(f'근속연수의 결측치 수: {df["근속연수"].isnull().sum()}')

df = df.dropna(subset='근속연수')
after_rows = df.shape[0]

print(f'2번 수행 전: {before_rows} \t2번 수행 후: {after_rows}')

# 3. 고객만족도의 3사분위수 계산하기
print('\n===== 3번 =====')
print(f'고객만족도의 3사분위수: {int(df["고객만족도"].quantile(0.75))}')

# 4. 두 번째로 평균 연봉이 높은 부서의 평균 연봉 구하기
print('\n===== 4번 =====')
print(f'두 번째로 평균 연봉이 높은 부서의 평균 연봉: {int(df.groupby("부서")["연봉"].mean().sort_values(ascending=False).iloc[1])}')

  1. 8
  2. 74690
profile
꿈을 찾고 이루기 위한 여정을 기록합니다

0개의 댓글