Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- Algorithm
- 선그래프
- 정보처리기사 c언어
- Join
- 데이터시각화
- dataframe
- queue
- Selenium
- Matplotlib
- String Method
- 파이썬
- 자료구조
- 코딩테스트
- 알고리즘 스터디
- NumPy
- MySQL
- python
- aws jupyter notebook
- javascript
- pandas
- 알고리즘
- 노마드코딩
- Stack
- type hint
- 알고리즘스터디
- openCV
- 가상환경
- 백준
- 프로그래머스
- programmers
Archives
- Today
- Total
조금씩 꾸준히 완성을 향해
[Pandas] 데이터 전처리 / 데이터 단위 변경, 데이터 타입 변경 본문
데이터 표준화
단위 변경
- 같은 데이터셋에서 서로 다른 측정 단위 사용 시 전체 데이터의 일관성 측면에서 문제 발생 => 측정 단위를 동일하게 맞출 필요가 있음
- 외국 데이터를 가져오면 국내에서 잘 사용하지 않는 도량형 단위 많이 사용
- 영미권의 마일드, 야드, 온스 등은 한국의 미터, 평, 그램 등으로 변환
# mpg 데이터프래임의 mpg(mile per gallon)을 kpl(kilometer per liter)로 변환
df = pd.read_csv('/content/drive/MyDrive/ Encore Prac/auto-mpg.csv', header=None)
df
# mpg(mile per gallon)을 kpl(kilometer per liter)로 변환 후 소수점 둘째자리까지 반올림
# kpl 열 생성
df['kpl'] = df.mpg * 0.425
df['kpl'] = df.kpl.round(2)
# kpl 열 확인
df
데이터타입 변경
▶ 숫자형으로 변환
숫자가 문자열(object)로 저장된 경우 숫자형(int or float)으로 변환 필요
- dtypes 속성을 사용해 자료형 확인
- info() 메소드도 활용 가능
# df의 데이터타입 확인
df.dtypes
- astype() : 데이터 타입 변경
# horsepower 열 데이터타입을 float으로 바꾸기 시도
# ValueError: could not convert string to float: '?'
df.horsepower.astype('float64')
# horsepower 열의 유니크 값 확인
df.horsepower.unique()
import numpy as np
# horsepower 열의 '?' 값을 nan으로 변경
df.horsepower.replace('?', np.nan, inplace=True)
# horsepower 열 데이터타입을 float으로 바꾸기
# 성공!
df.horsepower = df.horsepower.astype('float64')
# df의 데이터타입 확인
df.dtypes
▶ 범주형으로 변환
적은 수의 고유값이 반복적으로 나타나는 경우에는 범주형(category)데이터를 표현하는 것이 효율적
# origin 열 데이터타입 확인
df.origin.dtypes
# dtype('int64')
# origin 열의 유니크 값 확인
df.origin.unique()
# array([1, 3, 2]) => 빈도순으로 정렬
# 값 카운트
df.origin.value_counts()
#데이터 명 변경
df.origin.replace({1:'USA', 2:'EU', 3: 'JAPAN'}, inplace=True)
df.origin.unique()
# array(['USA', 'JAPAN', 'EU'], dtype=object)
# origin 열을 범주형 데이터로 변경
df.origin = df.origin.astype('category')
df.origin.dtypes
# CategoricalDtype(categories=['EU', 'JAPAN', 'USA'], ordered=False)