[Pandas] 가상 쇼핑몰 고객주문 데이터 전처리1 - null처리 및 타입변경
프로젝트(?)를 하면서 pandas를 계속 썼지만, 쓰던 함수만 쓰고 계속 검색하다보니 그렇게까지 익숙한 편은 아니였다.
그래서 개인적으로 다양한 데이터를 가지고 pandas를 더 공부해보고자 시작하는 글~!
가상쇼핑몰 고객주문 데이터
https://archive.ics.uci.edu/ml/datasets/Online+Retail
온라인 리테일 사이트의 2010년 12월부터 2011년 12월까지의 데이터 -> 약 500,000건 (꽤 많아보인다!)
1. 데이터불러오기 및 확인
컬럼명파악
컬럼명 | 설명 |
invoiceNo | 주문 번호 |
StockCode | 아이템 아이디 |
Description | 상품 정보 |
Quantity | 상품 주문 수량 |
InvoiceDate | 주문 일자, 시간 |
UnitPrice | 상품 가격 |
CustomerID | 고객 아이디 |
Country | 고객 거주 지역 (국가) |
2. 누락값 확인 및 처리
customerid의 개수가 다른컬럼이랑 다르고, quanity와 unitprice의 min값이 이상하다. 음수값이 있나보다!
그래서 null이 몇개 있나 확인해보면 아래와 같고, 이 행들을 제거해주는 작업이 필요하다.
3. 메모리효율화 (타입변경)
메모리를 쓸데없이 많이 차지하고 있는데, 그 이유는 타입때문이다.
예를 들어 연산도 필요없는 customerid가 많은 메모리를 차지하는 float64타입 -> int32로 변경해서 메모리공간 줄임
아니면 아예 그 자체만으로도 의미잇는 타입이니까 category 타입으로 변경할 수도 있다. 그럼 메모리공간 더 절약
아니면 downcast를 하는 방법이 있다.
그럼 알아서 최대한 메모리효율화를 할 수 있도록 자동으로 바뀌게 되며, 현재는 int16으로 바뀌었다.
그래서 int32보다 더 적은 범위의 정수를 표현할 수 있게 되고 메모리공간도 절약할 수 있다.
같은방식으로, object 타입이 아닌 quanity와 unitprice 컬럼의 타입도 변경한다.
4. date 타입변경
infer_datetime_format : 자동으로 datetime이 어떤 형식인지 확인하고, 변환한다.
5. 컬럼추가 (총 지출액)
이제 타입변경된 quanity와 unitprice 컬럼을 가지고 총 지출액 컬럼을 생성한다.