본문 바로가기

데이터 분석/Python - 정리하자

퍼널(Funnel) 데이터를 정리 해보자

반응형

**해당 데이터는 제가 학원 강의를 수료하며 받은 데이터이며 원본 데이터는 기업으로부터 제공받은 데이터라서 공유할 수 없습니다.
**본문은 공부를 하며 과정을 이해하며 생각하기 위함이니 참고 해주시면 감사드리겠습니다.

## Environment : Anaconda-navigator
## Programming Language : Python 3
## Import Pandas
## import seaborn as sns
## import matplotlib as mpl
## import matplotlib pyplot as plt
## Data provided by DS school & Origin data from Kmong.
## Kmong is a company that has a dream as below.
Kmong은 "비합리적인 서비스 시장을 정보기술로 혁신하여 새로운 일자리를 만들고 사람들이 행복하게 일하는 세상을 만든다."는 미션을 가지고 있는 프리랜서 마켓 플랫폼입니다.
Kmong팀은 디자인, 마케팅, IT&개발, 컨텐츠 제작, 통번역 등 다양한 서비스 카테고리를 기반으로 직업과 직장의 경계를 허물며 사람들이 스스로 경제 주체가 되어 행복하게 일하는 세상을 만들고 있습니다.

Target

  1. 데이터를 불러오기 및 전반적인 정보 확인
  2. 불러온 데이터들을 전처리
  3. 데이터들 목적에 맞게 병합

이번에는 퍼널(funnel) 데이터를 정리해 보겠습니다.
퍼널 분석에 대해 간단한 예제를 들자면, 유저가 한 쇼핑몰에 들어와서 어떤 제품을 보고 구매를 하는등 나가기 전까지의 행동을 기록한 로그를 가지고 분석을 하는 것입니다. (funnel data 관련 링크 참조해주세요. link : https://brunch.co.kr/@joeflow/8)

what is funnel?

판다스에서 데이터를 불러오도록 하겠습니다.

funnel_raw_data = pd.read_csv('kmong-funnel.csv')

간단히 데이터를 확인해 보겠습니다.

print(funnel_raw_data.shape)
funnel_raw_data.head(3)

우선 컬럼을 Lv1, Lv2, viewid, viewid desc, funnel name, funnel desc 순으로 정렬 후 새로운 변수로 옮겨주겠습니다.

organize_columns = ['Lv1', 'Lv2', 'viewid', 'viewid desc', 'funnel name', 'funnel desc']
funnel = funnel_raw_data[organize_columns].copy()
print(funnel.shape)
funnel.head()

이번에는 데이터의 통일성을 위해 모든 컬럼을 소문자로 통일하고(ex: Lv1 -> lv1), 띄어쓰기를 언더바(_)로 바꿔주겠습니다.

new_columns = ['lv1', 'lv2', 'view_id', 'viewid_desc', 'funnel_name', 'funnel_desc']
funnel.columns = new_columns
print(funnel.shape)
funnel.head()

컬럼 정리가 완료되었습니다.

이번에는 카테고리(category) 데이터를 정리해보겠습니다.

category 데이터는 판매하는 상품의 카테고리를 나타내는 정보인데, 잘 정리되어 있기 때문에 크게 건드려줘야 하는 부분은 없고,
컬럼명만 바꿔주면 될 것 같습니다. 다음의 기준을 참고하여 컬럼명을 봐꿔주겠습니다.
단어 사이에는 언더바(_)를 붙입니다. (ex: categoryid -> category_id)
축약어는 전체 단어로 풀어서 작성합니다. (ex: cat1 -> category1)

간단히 데이터를 불러온 후 확인해보겠습니다.

category_raw = pd.read_csv('kmong-category.csv')
print(category_raw.columns)
print(category_raw.shape)
category_raw.head(3)

이번에는 조건에 맞게 데이터를 정리해보겠습니다.

category = category_raw.copy()
new_columns = ['depth', 'category_id', 'category_name', 'category1_id', 'category2_id',
               'category3_id','category1', 'category2', 'category3']
category.columns = new_columns
print(category.shape)
print(category.columns)
category.head()

funnel 과 category 두가지 데이터의 컬럼을 정리해봤는데 방식의 차이점이 있었습니다.
category 데이터의 경우 컬럼의 순서 변경 없이 이름만 변경되어 category.columns = new_columns 를 통해 진행해도 잘 반영 되지만,
funnel의 경우 컬럼 순서상 이동이 있기 때문에 category와 동일하게 진행하게 되면 컬럼명만 이동되고 밑단의 내용은 변화가 없으니 유의해서 진행 해주셔야 합니다.

 

다음 페이지에서는 본 환경을 이어서 동일한 데이터를 가지고 병합을 진행하도록 하겠습니다.

*** 본 페이지는 본인의 공부를 위해 작성되었으며, 협찬이나 문의를 받고 기재한 내용이 아닙니다. 혹시 문의사항이 있으시거나 문제가 될 경우 연락 주시기 바랍니다.***

반응형