Python

[Python] 데이터 사전 처리(Preprocessing)_2

구루싸 2019. 10. 7. 20:35
반응형
SMALL

오늘은 데이터 사전 처리(Preprocessing)에 대한 학습 두번째 시간입니다-_-

지난 번에 데이터셋의 누락 데이터, 중복 데이터를 처리하는 방법을 익혀보았습니다

이번에는 데이터의 일관성을 맞추기 위해 데이터를 표준화하는 방법을 익혀보겠습니다

데이터의 일관성을 맞춘다는 의미를 간단하게 설명하기 위해서 한 데이터셋에 길이 데이터가 있다고 가정해보겠습니다

그런데 이 길이 데이터의 수치가 어떤 것은 마일(mile)로 계산되었고 어떤 것은 미터(meter)로 계산되었다면?

이 데이터를 분석했을 때 정확도가 분명히 떨어질 것입니다

그래서 데이터를 분석하고자 할 때 데이터의 표준화는 필요합니다

그럼 오늘도 코드를 작성해보면서 학습해보겠습니다-_-

# 판다스(Pandas)
import pandas

filepath = "/Users/dennis_sa/Documents/"
#header가 없고 길이가 정해지지 않은 공백이 구분자인 데이터
read_data = pandas.read_csv(filepath+"auto-mpg.data-original", header = None, sep = '\s+') 
read_data.columns = ['연비(mpg)', '실린더 수(cylinders)', '배기량(displacement)', '출력(horsepower)',
                     '차중(weight)', '가속능력(acceleration)', '출시년도(model_year)', '제조국(origin)', '모델명(name)']

print(read_data.head(), end = '\n') #앞 5행 보기

# 연비(mpg : mile per gallon) 컬럼을 연비(kpl(kilometer per liter))로 변환
mpg_to_kpl = 1.60934/3.78541 # 1mi = 1.60934km 1gallon = 3.78541L
read_data['연비(kpl)'] = (read_data['연비(mpg)'] * mpg_to_kpl).round(2) # 소수점 세번째 자리에서 반올림
print(read_data.head(), end = '\n')

# 데이터 자료형 확인
print(read_data.dtypes, end = '\n')

# 출력(horsepower)의 고유값 확인
print(read_data['출력(horsepower)'].unique())

# 누락 데이터 제거
read_data.dropna(subset = ['출력(horsepower)'], axis = 0, inplace = True)
print(read_data['출력(horsepower)'].unique())

# 자료형 변환
read_data['출력(horsepower)'] = read_data['출력(horsepower)'].astype('int')
print(read_data.dtypes, end = '\n')

# 제조국(origin), 출시년도(model_year) 데이터 범주형(category)으로 변환
print(read_data['제조국(origin)'].unique())
read_data['제조국(origin)'] = read_data['제조국(origin)'].astype('category')
read_data['출시년도(model_year)'] = read_data['출시년도(model_year)'].astype('category')
print(read_data.dtypes, end = '\n')
print(read_data['제조국(origin)'].sample(5))
print(read_data['출시년도(model_year)'].sample(5))

이것으로 데이터를 표준화하기 위해 단위(mpg → kpl), 자료형(float → int, float → category)을 변환하는 방법을 학습했습니다

오늘은 여기까지-_-

반응형
LIST