반응형
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
'Python' 카테고리의 다른 글
[Python] 데이터 사전 처리(Preprocessing)_4 (0) | 2019.10.10 |
---|---|
[Python] 데이터 사전 처리(Preprocessing)_3 (0) | 2019.10.07 |
[Python] 데이터 사전 처리(Preprocessing)_1 (0) | 2019.10.01 |
[Python] 폴리엄(Folium) 라이브러리(Library) (0) | 2019.09.30 |
[Python] 씨본(Seaborn) 라이브러리(Library)_2 (0) | 2019.09.30 |