제공된 데이터(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])}')