电商数据分析:用户行为统计与可视化
实际部署时结合SQL直接查询业务数据库,使用Tableau/Plotly实现动态看板。
·
电商用户行为统计与可视化分析
1. 核心指标定义
- 用户行为类型:浏览($V$)、点击($C$)、加购($A$)、下单($O$)、支付($P$)
- 关键公式:
- 转化率:$$ \text{转化率} = \frac{\text{目标行为次数}}{\text{起始行为次数}} \times 100% $$
- 用户活跃度:$$ \text{DAU} = \sum_{i=1}^{n} \mathbb{I}(\text{用户}_i \text{单日行为量} > 0) $$
2. 数据预处理流程
import pandas as pd
# 模拟数据生成(实际需从数据库导入)
data = pd.DataFrame({
'user_id': [101, 102, 101, 103, 102],
'behavior': ['view', 'click', 'cart', 'view', 'order'],
'timestamp': ['2023-06-01 08:30', '2023-06-01 09:15',
'2023-06-02 11:20', '2023-06-02 14:00', '2023-06-03 16:45']
})
# 数据清洗与转换
data['date'] = pd.to_datetime(data['timestamp']).dt.date # 提取日期
behavior_map = {'view':1, 'click':2, 'cart':3, 'order':4, 'pay':5} # 行为编码
data['behavior_code'] = data['behavior'].map(behavior_map)
3. 统计指标计算
# 行为分布统计
behavior_counts = data['behavior'].value_counts()
# 漏斗转化率计算
funnel = {
'view_to_click': behavior_counts.get('click', 0) / behavior_counts['view'],
'click_to_cart': behavior_counts.get('cart', 0) / behavior_counts['click']
}
4. 可视化实现
A. 行为分布环形图
import matplotlib.pyplot as plt
plt.figure(figsize=(8, 6))
plt.pie(behavior_counts, labels=behavior_counts.index, autopct='%1.1f%%',
wedgeprops={'width':0.4}) # 环形图参数
plt.title("用户行为分布比例")
plt.show()
B. 转化漏斗图
from pyecharts.charts import Funnel
funnel_chart = (
Funnel()
.add("转化率",
[list(z) for z in zip(['浏览','点击','加购'], list(funnel.values()))],
label_opts={"position": "inside"})
)
funnel_chart.render("funnel.html") # 生成交互式图表
C. 用户活跃热力图
import seaborn as sns
# 按日期统计活跃用户
daily_active = data.groupby('date')['user_id'].nunique().reset_index()
daily_active.columns = ['date', 'active_users']
plt.figure(figsize=(10, 4))
sns.lineplot(data=daily_active, x='date', y='active_users', marker='o')
plt.grid(axis='y', linestyle='--', alpha=0.7)
plt.title("每日活跃用户趋势")
plt.xlabel("日期")
plt.ylabel("活跃用户量")
5. 分析结论
- 浏览→点击转化率:$ \approx 32.5% $
- 关键流失点:加购→下单阶段转化率低于$15%$,需优化购物车流程
- 每周三活跃峰值:较日均值提升$ \Delta = +18.7% $,可针对性促销
工具建议:实际部署时结合SQL直接查询业务数据库,使用Tableau/Plotly实现动态看板。
更多推荐
所有评论(0)