e-커머스 Sample DB 생성 및 분석 프로젝트(1)

업데이트:

개요

Python을 배우고, Kaggle 튜토리얼을 해보며 실제 비즈니스에서 쓰이는 데이터 분석을 해보고 싶었다. 내가 원하는 샘플데이터를 찾아보고자 했지만, e커머스 혹은 어플리케이션에서 발생할 수 있는 데이터은 찾기 힘들었다.
그래서 내가 직접(!) 데이터를 만들고, 분석해보기로 했다.

데이터 생성

내게 친숙한 데이터는 e커머스 데이터이므로, 커머스에서 가지고있을 주요 Index를 세 가지로 분류하여 뽑아보았다.

  1. 기본 정보 : 이름 / 생년월일 / 성별 / 주소 / 등급
  2. 로그 관련: 가입일 / 마지막 로그인 날짜 / 로그인 횟수
  3. 주문 관련: 장바구니 담은 수 / 구매 횟수 / 총 구매 수량 / 총 구매 금액 / 총 누적 쿠폰 수 / 사용 쿠폰 수 / 환불 횟수

복잡한 코드를 짜서 만들기보다는, random 모듈을 활용하여 index들을 구성하였다. index별로 나름의 조건을 설정하여 데이터를 생성하였으며, 총 5만개의 데이터를 생성하였다.

Image_
우여곡절 끝에 만들어진 내 첫 고객님들..!


아래는 데이터를 생성할 때 설정한 기준이다.

Index별 생성 조건 설명

  • 이름: [대한민국 성씨 순위 top20 중 랜덤추출] + [‘08년~’20년 간 가장 많이 쓰인 이름 200개의 음절]
  • 생년월일: 1980.01.01 ~ 2001.12.31 중 랜덤 추출(20세~40세)
  • 성별: 남/녀 랜덤 추출
  • 주소: 서울시 25개 지역구 랜덤 추출
  • 등급: 1~3급 랜덤 추출
  • 가입일: 2018.01.01 ~ 2019.12.31 중 랜덤 추출
  • 마지막 로그인 날짜: 가입일 ~ 2019.12.31 중 랜덤 추출
  • 로그인 횟수: 2**(등급-1) + (0 ~ 30 중 랜덤 추출)
  • 장바구니 담은 수: 3**(등급-1)+(0 ~ 11 중 랜덤 추출)
  • 구매 횟수: (0 ~ (장바구니 담은 수 /2+1) 중 랜덤 추출) + (0 ~ 11 랜덤 추출)
  • 총 구매 수량: 구매 횟수 당 * (1개: 60%, 2개: 30%, 3개: 10%)
  • 총 구매 금액: 구매 횟수 * 5000~35000원 랜덤 추출(5000씩 증가)
  • 총 누적 쿠폰 수: 3번 로그인 할 때 마다 50%로 쿠폰 지급
  • 사용 쿠폰 수: 누적 쿠폰 수 - 구매 횟수(50%로 0 또는 1)
  • 환불 횟수: 구매시마다 5%의 환불 확률 적용

위 코드는 github에 저장해놓았다.
(처음에 100만개를 만드려고 하다가, 시간이 너무 오래 걸려서 5만개로 만족해야했다.) 내가 짠 코드는 효율이 매우 떨어지는 생성법인 것으로 보이는데, 공부해나가다가 더 좋은 방법이 있다면 수정할 예정이다.

댓글남기기