一、前言

在电商运营中,促销活动是提升销量和用户活跃的重要手段。
然而,活动效果需量化分析,避免盲目投入。
通过数据分析,可以评估促销活动的效果、ROI,并优化未来策略。

本文将展示完整的促销活动数据分析流程。


二、数据准备

  1. 数据来源

  • 用户行为日志(浏览、下单、支付)

  • 订单数据(金额、时间、商品类别、促销类型)

  • 用户属性表(性别、年龄、注册渠道)

  1. 导入数据


import pandas as pd logs = pd.read_csv('user_logs.csv') orders = pd.read_csv('orders.csv') users = pd.read_csv('user_info.csv')

  1. 初步探索


print(orders.head()) print(orders.info()) print(orders['promotion_type'].value_counts())

  • 检查促销类型、订单数量、用户参与情况

  • 了解数据完整性和异常值


三、促销活动效果指标

  1. 主要指标

  • 参与用户数

  • 订单数量

  • 总销售额

  • 平均订单金额

  • 转化率

  1. 计算各促销效果


promo_summary = orders.groupby('promotion_type').agg({ 'user_id':'nunique', 'order_id':'count', 'amount':'sum' }).reset_index() promo_summary.rename(columns={'user_id':'unique_users','order_id':'order_count','amount':'total_revenue'}, inplace=True) promo_summary['avg_order_value'] = promo_summary['total_revenue'] / promo_summary['order_count'] print(promo_summary)


四、用户参与分析

  1. 新老用户参与情况


orders_users = orders.merge(users, on='user_id', how='left') orders_users['user_type'] = orders_users['first_order_date'].apply(lambda x: 'New' if x > '2025-01-01' else 'Existing') promo_user_type = orders_users.groupby(['promotion_type','user_type'])['user_id'].nunique().unstack() print(promo_user_type)

  • 分析活动对新用户和老用户的吸引力

  1. 用户复购情况


repeat_users = orders_users.groupby('user_id')['order_id'].nunique().reset_index() repeat_users = repeat_users[repeat_users['order_id']>1] print(f"参与活动复购用户数: {repeat_users.shape[0]}")


五、转化率与ROI分析

  1. 转化率计算


# 假设曝光用户数据已存在 exposure = pd.read_csv('promotion_exposure.csv') promo_conversion = orders.groupby('promotion_type')['user_id'].nunique() / exposure.groupby('promotion_type')['user_id'].nunique() print(promo_conversion)

  1. ROI计算


# 假设促销成本表已存在 promo_cost = pd.read_csv('promotion_cost.csv') promo_roi = promo_summary.merge(promo_cost, on='promotion_type') promo_roi['ROI'] = (promo_roi['total_revenue'] - promo_roi['cost']) / promo_roi['cost'] print(promo_roi[['promotion_type','ROI']])

  • 评估各活动投入产出比,指导后续促销策略


六、可视化分析


import matplotlib.pyplot as plt import seaborn as sns # 各促销总销售额对比 sns.barplot(x='promotion_type', y='total_revenue', data=promo_summary, palette='Blues_d') plt.title('Total Revenue by Promotion Type') plt.show() # ROI对比 sns.barplot(x='promotion_type', y='ROI', data=promo_roi, palette='Greens_d') plt.title('ROI by Promotion Type') plt.show()

  • 可视化展示效果差异,便于管理决策

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐