「ビックデータ分析・活用のためのSQLレシピ」を読む

6章 Webサイトでの行動を把握するためのデータ抽出

6-1 サイト全体の特徴・傾向を見つける

6-1-1 日次の訪問者数・訪問回数・ページビューを集計する

import pandas as pd
import psycopg2
import numpy as np

conn = psycopg2.connect("dbname=BigData host=localhost user=testuser")
df_acc = pd.read_sql("SELECT * FROM access_log", conn)
print(df_acc.head(3))

f:id:bitop:20180813081216p:plain

conn = psycopg2.connect("dbname=BigData host=localhost user=testuser")
df_pur = pd.read_sql("SELECT * FROM purchase_log", conn)
print(df_pur.head(3))

f:id:bitop:20180813081300p:plain

df_acc['date'] = pd.to_datetime(df_acc['stamp'])
df_acc['date'] = df_acc['date'].dt.strftime('%Y-%m-%d')
df_acc_gou = df_acc.groupby('date')
data1 = df_acc_gou['long_session'].unique().map(lambda x:len(x))
data2 = df_acc_gou['short_session'].unique().map(lambda x:len(x))
data3 = df_acc_gou['stamp'].count()
df = pd.DataFrame({'access_users':data1,'access_count':data2,'page_view':data3})
df['pv_per_user'] = df['page_view']/df['access_count']
print(df)

f:id:bitop:20180813081349p:plain