본문 바로가기
IT&게임/빅데이터분석기사(빅분기)

[공식문제] 빅분기 제1유형 예제문제 (MinMaxScaler)

by 푸루루 2024. 6. 18.
728x90
반응형

 

작업형1 예시문제(MinMaxScale)

작업형 1번 문제는 EDA관련 문제가 거의 없음

 

자동차 데이터 셋에서 qsec 컬럼을 Min-Max Scale로 변환 후 0.5보다 큰 값을 가지는 레코드(row) 수는?

 

문제분석

  • 문제에서 qsec 컬럼만 묻고 있음 (다른 컬럼 신경 쓸 필요 없음)
  • MinMax Scale 변환
  • 조건 0.5보다 큰 값

 

#데이터 불러오기 
import pandas as pd 
car = pd.read_csv("mtcars.csv")

scaler = MinMaxScaler()

# ★★★ 데이터를 [[]] 두번해야지 데이터 프레임이 됨([]만 한경우는 시리즈임★★★
car['qsec']=scaler.fit_transform(car[['qsec']])

print(sum(car['qsec']>0.5))

####################################################
2번째 방법 
####################################################
# minmax_scale 활용
from sklearn.preprocessing import minmax_scale

data = load_data()
print('MinMax Scale 변환 전: \n',data['qsec'].head())
data['qsec'] = minmax_scale(data['qsec'])
print('MinMax Scale 변환 후: \n',data['qsec'].head())

####################################################
3번째 방법 
####################################################
# min-max 함수
def my_minmax(data):
    data = (data - min(data)) / (max(data) - min(data))
    return data

print('MinMax Scale 변환 전: \n',data['qsec'].head())
data['qsec'] = my_minmax(data['qsec'])
print('MinMax Scale 변환 후: \n',data['qsec'].head())


#조건에 따른 수 구하는 다른 방법
cond = data['qsec'] > 0.5
print(len(data[cond]))
 

결측치가 처리 되지 않았을때,

 

len : 행의 수

count : NaN이 아닌 행의수

sum : True(1) 값을 더했기 때문에 조건문에 따라 달라짐

 

728x90

댓글