數據分析報告:淘寶客戶分析報告


一、報告目的

電子商務在發展過程中越來越注意消費者的用戶體驗,淘寶是深受中國消費者喜歡的電子商務平台,本文試圖通過研究淘寶商城消費者的用戶行為和潛在的需求,幫助企業制定個性化的營銷方案,提高平台的運行效率。

二、數據概況

2.1 數據來源

本文的數據來自天池數據集https://tianchi.aliyun.com/dataset/dataDetail?dataId=46

2.2 數據的基本情況

(1) 數據共有1200萬條,選取其中的20萬條作為報告內容。
(2) 數據清洗:清洗異常值、重復值、日期格式轉換、構造新特征
(3) 數據概覽

三、分析思路

3.1 流量分析

pv uv 跳失率 平均訪問量,結合時間維度進行分析

3.2 用戶分析

用戶點擊、收藏、加購、新增用戶情況、用戶復購率分析用戶情況,用戶價值模型分類

3.3 產品分析

主要產品結構、爆款產品分析

3.4 轉化分析

四、分析過程

4.1 數據清洗

# 數據清洗
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
data = pd.read_csv('UserBehavior.csv',nrows=200000, header=None,
                  names= ['用戶ID','商品ID','商品類目ID','行為類型','時間戳'])
data.head()
data.describe()
data.isnull().sum().sort_values(ascending=False) # 缺失值為0
data.duplicated().sum() # 重復值為0
start_time = datetime.datetime(2017,11,25)
end_time = datetime.datetime(2017,12,4)
start_ts = time.mktime(start_time.timetuple())
end_ts = time.mktime(end_time.timetuple())

data = data[(int(start_ts) <= data['時間戳']) & (data['時間戳'] <= int(end_ts))]
data['時間戳'] = data.時間戳.apply(lambda x: datetime.datetime.fromtimestamp(x))
data['日期'] = data.時間戳.dt.date
data['時間'] = data.時間戳.dt.time
data['小時'] = data.時間戳.dt.hour

4.2 流量分析

pv_date = data[data['行為類型'] == 'pv'].groupby('日期')['行為類型'].count()
uv_date = data[data['行為類型']== 'pv'].drop_duplicates(['日期','用戶ID']).groupby('日期')['用戶ID'].count()
print(pv_date)
print(uv_date)
# 日流量
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus'] = False
x = pv_date.index
y1 = pv_date.values
y2 = uv_date.values
plt.plot(x,y1,label='PV',linewidth=4, color='blue', marker='o', markerfacecolor='red', markersize=4)
plt.xticks(rotation=30)
plt.xlabel('日期',size=18)
plt.ylabel('數量',size=20)
plt.title('日流量情況',size=18)
plt.legend(loc='upper left')
plt.savefig('1周流量情況')

# 日訪客數
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus'] = False
x = pv_date.index
y1 = pv_date.values
y2 = uv_date.values
plt.plot(x,y2,label='UV',linewidth=4, color='red', marker='o', markerfacecolor='black', markersize=4)
plt.xticks(rotation=30)
plt.xlabel('日期',size=18)
plt.ylabel('數量',size=20)
plt.title('訪客情況',size=18)
plt.legend(loc='upper left')
plt.savefig('2一周訪客情況')

# 日人均流量折線圖
y3 = y1/y2
plt.plot(x,y3,label='日均瀏覽量',linewidth=4, color='green', marker='o', markerfacecolor='black', markersize=4)
plt.xticks(rotation=30)
plt.xlabel('日期',size=18)
plt.ylabel('數量',size=20)
plt.title('日人均瀏覽量',size=18)
plt.legend(loc='upper left')
plt.savefig('3日均瀏覽量情況')

# 時流量
# 時訪客
hour_date = data[data['行為類型'] == 'pv'].groupby('小時')['行為類型'].count()
hour_uv = data[data['行為類型'] == 'pv'].drop_duplicates(['小時','用戶ID']).groupby('小時')['行為類型'].count()
x = hour_date.index
y1 = hour_date.values
y2 = hour_uv.values
y2
plt.plot(x,y1,label='PV',linewidth=4, color='blue', marker='o', markerfacecolor='red', markersize=4)
plt.xticks(rotation=30)
plt.xlabel('日期',size=18)
plt.ylabel('數量',size=20)
plt.title('時流量情況',size=18)
plt.legend(loc='upper left')
plt.savefig('4時流量情況')
plt.plot(x,y2,label='PV',linewidth=4, color='red', marker='o', markerfacecolor='black', markersize=4)
plt.xticks(rotation=30)
plt.xlabel('日期',size=18)
plt.ylabel('數量',size=20)
plt.title('時訪客數情況',size=18)
plt.legend(loc='upper left')
plt.savefig('4時訪客數情況')

  1. 日PV和日UV呈上升趨勢,且在11月1日至11月2日期間有大幅度提高,初步推測該平台流量有增長的態勢,並在12月1日開啟促銷宣傳活動。
  2. 時PV和時UV在10時以后較為平穩,並在16時至20時呈現持續增長的態勢,建議在下午和晚上加強宣傳引導,提高轉化率
  3. 人均瀏覽量在27日下降到最低,應該分析該天的運營情況,商品宣傳頁面是否出現問題等。

4.3 用戶分析

# 新增用戶分析
from copy import deepcopy
import datetime
df_pv = df[df.行為類型 == 'pv']
s = set()
days = []
nums = []
add_pv = []
for date in df_pv['日期'].unique():
    num1 = len(s)
    s1 = deepcopy(s)
    ids = df_pv[df_pv.日期 == date]['用戶ID'].values.tolist()
    for i in ids:
        s.add(i)
    add_users = s - s1
    num2  = len(s)
    days.append(date)
    nums.append(num2-num1)
df_new_uv = pd.DataFrame({'日期': days, '新增訪客數': nums})    
df_new_uv

hour_behavior = data.groupby(['行為類型','小時'])['行為類型'].count()
plt.figure(figsize=(12,8))
hour_behavior['pv'].plot(color='r',label='點擊')
plt.legend(fontsize=16, loc='upper right')
plt.xticks(hour_behavior['pv'].index, ['0時','1時','2時','3時','4時','5時','6時','7時','8時','9時','10時','11時','12時','13時','14時','15時','16時','17時','18時','19時','20時','21時','22時','23時'], fontsize=12)
plt.xlabel('')
plt.grid(b='False')
plt.twinx()
hour_behavior['fav'].plot(color='b', label='收藏')
hour_behavior['cart'].plot(color='k', label='加入購物車')
hour_behavior['buy'].plot(color='g', label='購買')
plt.xlabel('')
plt.xticks(hour_behavior['pv'].index, ['0時','1時','2時','3時','4時','5時','6時','7時','8時','9時','10時','11時','12時','13時','14時','15時','16時','17時','18時','19時','20時','21時','22時','23時'], fontsize=12)
plt.grid(b='False')
plt.legend()
plt.title('一天中用戶行為分布折線圖', fontsize=18)
plt.savefig('5一天內用戶行為分析')

# 兩周內用戶行為分析
plt.figure(figsize=(12,8))
day_behavior = data.groupby(['行為類型','日期'])['行為類型'].count()
day_behavior['pv'].plot(color='r',label='點擊')
plt.legend(fontsize=16, loc='upper right')
plt.xlabel('')
plt.xticks(rotation=30)
plt.twinx()
day_behavior['fav'].plot(color='b', label='收藏')
day_behavior['cart'].plot(color='k', label='加入購物車')
day_behavior['buy'].plot(color='g', label='購買')
plt.xlabel('')
plt.xticks(rotation=30)

plt.legend()
plt.title('近幾日用戶行為分布折線圖', fontsize=18)
plt.savefig('6一周內用戶行為分析')

from datetime import date
nowdate = date(2017, 12, 5)
recent_buy_date = df[df.行為類型 == 'buy'].groupby('用戶ID')['日期'].apply(lambda x: x.sort_values().iloc[-1])
recent_buy_time = (nowdate - recent_buy_date).map(lambda x: x.days)
fre_buy = df[df.行為類型 == 'buy'].drop_duplicates(['用戶ID', '時間戳']).groupby('用戶ID')['日期'].count()
rf_module = pd.DataFrame({'用戶ID': recent_buy_time.index, 
                          'recency': recent_buy_time.values,
                          'frequency': fre_buy.values})

rf_module.to_excel('rf.xlsx')

結論:

  1. 新增訪客數在25日增加最多,在之后幾日逐漸減少,需要增加拉新活動
  2. 用戶收藏和購買趨勢線基本擬合,可以增加活動提高收藏率,從而增加購買轉化
  3. 18時-22時是用戶活躍購買 高峰期,需要加強運營
  4. rfm用戶價值分析:
    重要價值客戶:該類用戶消費頻次較高,最近一次消費近,應當保持當前策略維持
    重要發展客戶:該類用戶消費頻次較高,最近一次消費較遠,應該通過發放優惠券、短信及時喚回
    潛力客戶:該類客戶消費頻次低,最近一次消費較近,應該通過關聯商品、打折等提高消費頻率
    一般維持客戶:該類客戶消費頻次低,最近一次消費低,應當通過折扣、優惠券將其挽回

4.4 轉化分析

pv = data[data['行為類型'] == 'pv']['用戶ID'].count()
cart = data[data['行為類型'] == 'cart']['用戶ID'].count()
fav = data[data['行為類型'] == 'fav']['用戶ID'].count()
buy = data[data['行為類型'] == 'buy']['用戶ID'].count()

attr = ["購買:%.2f%%" % (buy / pv * 100), "收藏或加入購物車: %.2f%%" % ((fav+cart) / pv * 100),"點擊量:100%"]
value = [18, 36, 54]
funnel = Funnel("轉化率", width=600, height=400, title_pos='center')
funnel.add(
    "商品",
    attr,
    value,
    is_label_show=True,
    label_pos="inside",
    label_text_color="#fff",
    is_legend_show = False
)
funnel

  1. 總的點擊量中,有6.25%加入購物車,有3.24%收藏,而到最后只有2.24%購買,整體來看,購買的轉化率最低,有很大的增長空間
  2. “點擊-加入購物車“這一環節的轉化率最低,按照“點擊-加入購物車-收藏-購買”這一用戶行為路徑,我們可通過優化“點擊-加入購物車”這一環節進而提升購買的轉化率。
# 產品分析
# 用戶關注哪些產品
goods_buy = data[data['行為類型']=='buy'].groupby('商品類目ID')['用戶ID'].count().sort_values(ascending=False)
goods_buy[:10]
goods_pv = data[data['行為類型']=='pv'].groupby('商品類目ID')['用戶ID'].count().sort_values(ascending=False)
goods_pv[:10]
goods_buy[:10].to_excel('goods_buy.xlsx')
goods_pv[:10].to_excel('goods_pv.xlsx')

結論:通過分析找出前10位的主要產品,可以對主要產品進行精准宣傳,打造爆款產品


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM