기본 콘텐츠로 건너뛰기

라벨이 활성 사용자 수인 게시물 표시

파이썬(Python)을 이용한 DAU 구하기

0. DAU(Daily Active Users, 일별 활성 사용자)는 앱 또는 웹을 사용한 사용자 수를 일별 집계한 값이다. 게임 앱이라고 가정한다면, 일별 게임 플레이한 유저 수가 DAU라 할 수 있다. 유저 수는 중복을 제거한다. DAU에 대한 자세한 설명은  위키피디아 에서 확인할 수 있다. 1. 먼저 매일 게임을 플레이한 유저를 기록하는 PLAYS라는 가상의 DataFrame이 있다고 하자. Pandas 라이브러리 를 이용해 user_id와 플레이한 date가 기록되어 있는 간단한 샘플 데이터프레임을 아래와 같이 만든다. 1 2 3 4 5 6 7 8 import pandas as pd user_id = [ '1' , '4' , '6' , '1' , '2' , '8' , '10' , '1' ] created_at = [ '2019-01-03' , '2019-01-03' , '2019-01-03' , '2019-01-03' , '2019-01-04' , '2019-01-04' , '2019-01-04' , '2019-01-04' ] plays = pd . DataFrame({ 'user_id' : user_id, 'created_at' : created_at}) plays . tail() tail() 메서드를 이용해 아래와 같이 PLAYS 데이터프레임이 잘 만들어진 것을 확인할 수 있다. Jupyter Notebook 을 이용하면 바로 확인할 수 있다. 2. DAU는 "일별로 유저 수 집계", "중복 유저 제거" 2가지 조건을 충족시켜야 한다. 즉 날짜(created_

SQL - DAU 산출

0. DAU(Daily Active Users, 일별 활성 사용자)는 앱 또는 웹을 사용한 사용자 수를 일별 집계한 값이다. 게임 앱이라고 가정한다면, 일별 게임 플레이한 유저 수가 DAU라 할 수 있다. 유저 수는 중복을 제거한다. DAU에 대한 자세한 설명은 위키피디아 에서 확인할 수 있다. 1. 먼저 매일 게임을 플레이한 유저를 기록하는 PLAYS라는 가상의 DB가 있다고 하자. user_id와 플레이한 date가 기록되어 있는 간단한 샘플 DB를 아래와 같이 만든다. 1 2 3 4 5 6 7 CREATE TABLE PLAYS(user_id integer, created_at date); INSERT INTO PLAYS VALUES ( 1 , '2019-01-03' ); INSERT INTO PLAYS VALUES ( 2 , '2019-01-03' ); INSERT INTO PLAYS VALUES ( 3 , '2019-01-03' ); INSERT INTO PLAYS VALUES ( 1 , '2019-01-04' ); INSERT INTO PLAYS VALUES ( 2 , '2019-01-04' ); PLAYS 테이블이 잘 만들어졌는지 확인한다. 1 SELECT * FROM PLAYS; 아래와 같이 (user_id, | created_at)으로 이루어진 PLAYS 테이블이 생성된 것을 확인할 수 있다. 2. DAU는 "일별로 유저 수 집계", "중복 유저 제거" 2가지 조건을 충족시켜야 한다. 즉 date()를 기준으로 count()를 하되 distinct를 사용하여 중복 유저를 제거한다. user_id의 중복을 제거하고, unique한 값만 사용하기 위해 "distinct user_id"로 작성하였다. &qu