본문 바로가기

인공지능/데이터 분석

[데이터 분석] 쇼핑몰 웹 로그 분석 - 1. Active User(활성 사용자)

캐글에서 제공하는 쇼핑몰 웹 로그 데이터셋을 이용하여 데이터 분석을 진행해보려 한다.

 

사용 데이터셋 정보

https://www.kaggle.com/mkechinov/ecommerce-behavior-data-from-multi-category-store

 

eCommerce behavior data from multi category store

This dataset contains 285 million users' events from eCommerce website

www.kaggle.com

 

 

 일별 활성 사용자(Active User) 수 구하기

활성 사용자 수는 방문수, 방문자수의 개념과는 달리

'정해진 기간동안 접속한 사용자의 수'이다.

 

흔히 방문수를 구할때 사용하는 세션을 이용해 방문 횟수를 구하지만,

이는 실제 웹에 방문한 사용자 수와는 다른 개념이다.

예를 들어 한명의 사용자가 한 사이트에 3번 접속했다면,

방문수는 3회이지만 활성 사용자수는 1명인 것이다.

이런 활성 사용자는 DAU, WAU, MAU 등의 종류가 있는데,

DAU는 Daily Active User로 일일 활성 사용자 수를 의미한다.

WAU는 Weekly Active User, MAU는 Monthly Active User이다.

 

세션 개념 참고

https://88240.tistory.com/190

활성 사용자 개념 참고

http://www.openads.co.kr/content/contentDetail?contsId=1296 

 

 

◆ DAU 구하기

2019-Nov.csv 파일을 이용하여 활성 사용자 수를 구해보려고 한다.

데이터 프레임을 생성하고 데이터 프레임 정보를 확인해본다.

이 데이터셋은 약 3억명에 달하는 사용자의 정보를 담고 있다.

(scala나 pyspark를 이용하여 빠르게 처리하는 방법도 공부해야겠다.)

 

해당 데이터 프레임에서 사용하고자 하는 컬럼만 추출하여

별도의 데이터 프레임을 생성해 준 뒤,

이벤트 타임이 UTC 기준이므로 KST 기준으로 변경해준다.

datetime을 이용하여 컬럼의 자료형을 변환해준 뒤, 

시간 연산을 해주면 간단하게 변경이 가능하다.

(tz, timezone을 이용한 방법도 있다고 하는데 잘 모르겠다...)

<kst 날짜 저장을 위한 별도 리스트 생성>
<datetime 자료형 변환 및 시간 연산>

 

이후 일별 활성 사용자 수를 위해 kst_time 컬럼에서 일자만 추출해둔다.

(마찬가지로 datetime이기 때문에 day를 이용해 쉽게 추출 가능)

<kst_dat 컬럼 생성 및 분리>

 

그 다음에는 일자별로 user_id를 그룹화하여

일별 활성 사용자 수를 확인하면 되겠다.

<일자별 DAU 수>

 

해당 결과를 통해 11월 중 DAU가 가장 많은 날은 17일임을 확인할 수 있다.

 

 

 

 

※ 혼자 진행한 부분이라 틀린 부분이 존재합니다.

(지적과 댓글은 언제나 환영입니다.)