01
电商数据来源
1.商品API:提供了搜索、详情、评价等与商品相关的接口,可以通过关键词搜索商品,获取商品详情、销量等信息。
2. 店铺API:提供了店铺信息、店铺内商品等接口,可以查询店铺的基本信息、主营类目、评分等,还可以获取店铺内的商品列表。
3. 交易API:提供了交易相关的接口,包括订单的创建、查询、修改、关闭等功能,开发者可以通过这些接口实现订单管理、物流跟踪等功能。
4. 物流API:提供了物流信息查询、物流轨迹等接口,开发者可以使用这些接口获取物流公司、物流轨迹等信息,方便进行物流管理和查询。
5. 用户API:提供了用户信息的查询、身份验证等接口,开发者可以通过这些接口获取用户的基本信息,实现用户身份验证等功能。
6. 评价API:提供了对商品、店铺等评价信息的查询接口,可以获取商品或店铺的评价信息、评价数量等。
7. 类目API:提供了商品类目相关的接口,开发者可以查询淘宝平台上的商品类目信息、属性等。
总体来说,淘宝API提供了丰富的功能和分类,方便开发者通过接口获取淘宝平台上的各种数据,为开发者在自己的应用或网站中集成淘宝相关功能提供了便捷的途
说明:数据量:564169 原始字段:12
字段介绍
Unnamed: 行号
event_time:下单时间
order_id:订单编号
product_id:产品标号
category_id :类别编号
category_code :类别
brand :品牌
price :价格
user_id :用户编号
age :年龄
sex :性别
local:省份
02
分析目的
通过分析销售数据来了解在线销售业务的消费情况,分析用户消费数据来分析用户的消费行为,为用户推荐相匹配的商品。
分析问题
店铺销售情况
每月成交额
每月销售金额
每月消费人数
每月订单数量
每月客单价
不同省份用户数量
不同省份订单数量
不同省份成交金额
订单数随星期分布
订单随小时分布
用户消费行为
用户消费次数
用户消费金额
消费次数与消费金额关系
用户购买周期
新用户、活跃用户、不活跃用户、回流用户、回流率
复购率和回流率
消费人群分层情况
按性别分析
按年龄段分析
按喜好品牌分析
03
结论先行
1、销售金额、订单量、消费人数、客单价在清明小长假、五一小长假、暑假、开学季、十一小长假,几个假期节点表现不错,尤其是开学季的情况最好,在几个关键的节点开始前,店铺一定要提前储备库存,保证货源。
2、北上广销售金额、订单量、消费人数、客单价都优于其他省份,湖南省消费人数少,但是客单价、订单量都表现优异,湖南省潜力巨大,因此要加大对湖南省的宣传力度,增加湖南省的消费人数。
3、75%的消费人群购买力不高,对30岁以下的人群主要推荐亲民价格的商品。
4、40-50岁的人群购买力高,而且男性对高价格的商品购买力强,因此给40-50岁的男性推荐高价格的商品,对女性推荐较高价格的商品。
5、多数用户至少消费了两次,且消费金额与购物次数有较强的正相关,用户消费次数越多销售额越大。可在8天、28天对用户进行召回,引导客户消费。
6、订单集中在早晨,8点到13点是消费高峰期,这段时间要注意维持好网站的稳定性。
7、店铺可以在1-4月份减少营业人员,5-11月增加营业人员,应对销售高峰期。
接下来给大家介绍一下分析的过程,包括数据嗅探、数据清洗等步骤。
04
数据分析过程
数据嗅探
#导入第三方库
import os
from datetime import datetime
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
%matplotlib inline
#设置中文编码和负号的正常显示
#plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False
#导入数据
df=pd.read_csv('./电子产品销售分析.csv')
df.head()
输出结果:
df.describe()
输出结果:
数据清洗
#数据清洗和处理
#数据类型转化
df['event_time'] =
pd.to_datetime(df['event_time'].str[:19],format="%Y-%m-%d %H:%M:%S")
df['event_time'] = pd.to_datetime(df['event_time'])
#计算时间变量
df['Month']=df['event_time'].dt.month
df['Day'] = df['event_time'].dt.day
df['Dayofweek']=df['event_time'].dt.dayofweek
df['hour']=df['event_time'].dt.hour
df.head()
输出结果:
np.sum(df.isnull())
输出结果:
Unnamed: 0 0
event_time 0
order_id 0
product_id 0
category_id 0
category_code 129370
brand 27224
price 0
user_id 0
age 0
sex 0
local 0
Month 0
Day 0
Dayofweek 0
hour 0
dtype: int64
有两列中有数据缺失值,类别列缺失129370条,品牌列缺失27224条,这两列数值缺失对店铺销售情况的分析和用户消费行为的分析没主要影响,但是其他数据有重要影响,所以这两列缺失值由missing填充。
df.fillna('missing').head()
输出结果:
np.sum(df.isnull())
输出结果:
Unnamed: 0 0
event_time 0
order_id 0
product_id 0
category_id 0
category_code 129370
brand 27224
price 0
user_id 0
age 0
sex 0
local 0
Month 0
Day 0
Dayofweek 0
hour 0
dtype: int64
df['category_code'].fillna('missing',inplace=True)
df['brand'].fillna('missing',inplace=True)
np.sum(df.isnull())
输出结果:
Unnamed: 0 0
event_time 0
order_id 0
product_id 0
category_id 0
category_code 0
brand 0
price 0
user_id 0
age 0
sex 0
local 0
Month 0
Day 0
Dayofweek 0
hour 0
dtype: int64
缺失值已全部填充。
#重复值检查和处理
df.duplicated()
df.drop_duplicates()
输出结果: