반응형
import pandas as pd
# 작업형1 문제
# 작업형1에서는 EDA가 거의 필요없음.
# 문제: 자동차 데이터셋에서 qsec컬럼을 Min-Max Scale로 변환 후 0.5보다 큰 값을 가지는 레코드(row) 수는?
################################################
#스케일링 방법(1) MinMaxScaler
mtcars = pd.read_csv('data/mtcars.csv')
print(mtcars['qsec'][:3])
from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler()
mtcars['qsec'] = scaler.fit_transform(mtcars[['qsec']])
# MinMaxScaler로 스케일링 시, fit_transform 안에 넣어주는것은 DataFrame이어야 한다.
# 대괄호가 하나면 Series 이고, 대괄호가 2개면 DataFrame이다. 그래서 scaler.fit_transform(mtcars[['qsec']]) 로 해야한다. scaler.fit_transform(mtcars['qsec'])로 하니까 에러가 났었음!!
print(mtcars['qsec'][:3])
################################################
#스케일링 방법(2) minmax_scale
mtcars = pd.read_csv('data/mtcars.csv')
from sklearn.preprocessing import minmax_scale
mtcars['qsec']=minmax_scale(mtcars['qsec'])
# 동일한 결과가 나오지만 사용방법이 다르다
# (1) fit_transform함수를 안 써도 된다.
# (2) 파라메터로 데이터프레임이 아니라 시리즈를 넣는다.
print(mtcars['qsec'][:3])
################################################
#스케일링 방법(3)
def my_minmax(data):
data = (data - min(data)) / (max(data)-min(data))
return data
mtcars = pd.read_csv('data/mtcars.csv')
mtcars['qsec'] = my_minmax(mtcars['qsec'])
print(mtcars['qsec'][:3])
################################################
# 조건 (0.5보다 큰 값)
#풀이방법 (1) sum
#조건문의 결과는 bool인데 True는 1이고 False는 0이라서 Sum하면 9가 나온다
cond = mtcars['qsec']>0.5
print(sum(cond))
#풀이방법 (2) len
# len 안에 데이터프레임을 넣으면 행의 개수를 구해준다.
cond = mtcars['qsec']>0.5
print(len(mtcars[cond]))
#풀이방법 (3) count
# len과 마찬가지로 데이터 수를 구하는데 Series 별 수를 구한다. 그래서 컬럼명 지정해주어야 정확한 결과를 얻을 수 있다.
cond = mtcars['qsec']>0.5
print(mtcars[cond]['qsec'].count())
################################################
# mtcars는 결측치 없는 데이터. 만약 결측치가 있다면 sum,len,count의 결과가 달라진다.
# .count() 는 결측치를 제외한 결과를 준다.
# len: 행의 수
# count: Nan이 아닌 (컬럼별) 행의 수
# sum: 조건문의 결과에서 True(1) 값의 합. 즉, 조건문에 따라 다르다.
반응형
'IT,SW,Data,Cloud,코딩 > Python' 카테고리의 다른 글
20230611 빅분기 3회 기출 작업형1 (0) | 2023.06.11 |
---|---|
20230611 빅분기 2회 기출 작업형 2 - 분류 (0) | 2023.06.11 |
20230610 파이썬공부 - 작업형 1 실습 (0) | 2023.06.10 |
20230610 파이썬공부 - 작업형2 (0) | 2023.06.10 |
2023년6월9일 머신러닝-Regression (0) | 2023.06.10 |
2023년6월8일 파이썬공부 - 머신러닝 기초 프로세스 (0) | 2023.06.08 |
2023년6월7일 파이썬공부 - 피쳐엔지니어링 (0) | 2023.06.07 |
2023년6월7일 파이썬공부 - 데이터전처리 (1) | 2023.06.07 |
댓글