Python을 통해서 데이터 전처리를 하는 과정에 대한 기초적인 내용을 정리하는 글
목차
데이터 전처리
데이터 전처리는 데이터 분석과 모델링에서 가장 많은 시간과 노력이 소요되는 부분으로
데이터의 값이나 형태를 변환하여 분석에 적합한 형태로 만드는 것을 의미
- 결측치/중복치 처리
- 데이터 변형 및 치환
- 범주형 데이터 처리
문자열 시계열 데이터는 자료형에 알맞은 처리가 필요하기 때문에 이 내용이 중요함!
1. 누락 데이터 처리
1.1. 누락값
- 실제 데이터에는 다양한 누락값이 존재
- 데이터가 존재하지 않는 경우 NaN(Not a Number)로 표현
- 누락값은 0또는 빈 문자열과는 다른 개념, 데이터 자체가 존재하지 없는 것을 의미
1.1.1. 누락 데이터 확인하기
- 데이터프레임의 info() 메소드로 요약 정보를 확인하면 각 column 별 누락데이터를 확인
- value_counts() 메소드를 활용하여 각 column별 누락 데이터를 확인 (dropa = False 옵션 사용)
- isnull() 메소드를 활용하면 전체 데이터 프레임에 존재하는 누락값을 체크
1.2. 누락 데이터 제거 및 치환하기
1.2.1. 누락 데이터 제거
- 누락 데이터를 다루는 가장 쉬운 방법은 누락 데이터가 들어 있는 행 또는 열을 삭제하는 것
- 행(row)을 삭제하는 것은 관측 데이터의 레코드를 제거
- 열(column)을 삭제하는 것은 데이터의 변수(특성)을 제거하는 것
1.2.2. 누락 데이터 치환
- 제거하는 것은 간단하지만 왠만하면 데이터는 최대한 살리는 것이 중요
- 데이터의 분포와 특성을 잘 나타내는 값으로 누락 데이터를 치환할 수 있음
- default 값(ex. 0, 빈 문자열)
- 평균값
- 최빈값
- fillna() 메소드를 활용
2. 중복 데이터 처리
◆ 중복 데이터
- 실제 현업에서는 데이터가 중복 생성되는 경우가 종종 존재
- 주기적인 데이터 수집으로 인한 중복
- 데이터 수집 과정에서의 오류
- 판다스 데이터 프레임에서는 중복 데이터를 제거하는 메소드를 제공함
- duplicated() 메소드 : 중복 데이터 확인
- drop_duplicates 메소드 : 중복 데이터 제거
3. 판다스 자료형
3.1 판다스 자료형 종류
- 데이터의 종류에 적합한 자료형을 사용해야 함.
- ex. 숫자를 문자열로 사용할 경우 문제 발생
- 자료형 변환은 데이터 분석 과정에서 반드시 필요
※ 범주형 데이터를 사용할 때는 판다스의 카테고리 자료형이 효율적
- 성별의 경우 '남자', '여자' 문자열 대신 카테고리 자료형 이용 가능
- 정수형 : int
- 실수형 : float
- 범주형 : category
3.2. 자료형 변환
- astype() 메소드를 사용하여 특정 열의 자료형을 변환
3.3. 잘못 입력한 데이터 처리
- 실제 현업에서는 잘못 입력된 데이터가 종종 존재
- 사용자의 이름이 문자열로 입력된 name열에 숫자가 존재하는 등
→ 이럴 때 자료형 변환 메소드를 이용하여 변환 시 문제가 생길 수 있음.
→ 판다스의 to_numeric() 메소드를 활용
- 이 때 변환할 수 없는 데이터를 누락값으로 처리할 수도 있음.
3.4. 카테고리 자료형
- 특정 변수(열)을 범주형 데이터로 사용할 경우 category 타입을 사용할 수 있음
3.4.1. 카테고리 자료형의 장점
- 기존 변수를 카테고리 자료형으로 변환할 경우 데이터의 크기가 작아짐
- 변수 전체를 저장하지 않고 카테고리 고유값과 인덱스를 저장하기 때문
마무리
실제로 모르는 데이터들을 가져와 누락값, 중복값, 카테고리 자료형을 다뤄보고
해당 전처리된 데이터들을 시각화해보면서 여태까지 했던 작업들을 복습해보면 데이터에 대한 이해를 높일 거 같으니
후에 엑셀 파일이든 자료를 찾아서 시행해볼 필요가 있을 거 같다.
'데이터' 카테고리의 다른 글
[데이터 모델링 및 평가] 의사결정 나무(Decision Tree) 내용 정리 (0) | 2023.04.03 |
---|---|
[데이터 모델링 및 평가] 분류 모델 - KNN, SVM 내용 정리 (0) | 2023.04.03 |
[데이터 모델링 및 평가] 정규화 선형 모델 정리 (0) | 2023.04.03 |
[데이터 전처리] [Python] 데이터 처리 기초 내용 정리 (문자열, 시계) (0) | 2023.04.01 |
[데이터 전처리] Python을 통한 데이터 전처리 기초 내용 정리 (데이터 변형, 연속형 데이터 범주화, 더미 변수) (0) | 2023.03.31 |
댓글