目录
前言
天猫订单数据分析可以从多个角度进行分析,以下是一些常见的分析维度和方法:
-
基本统计分析:可以对订单数量、销售额、平均订单金额等进行基本统计分析,以了解整体的销售情况和趋势。
-
地域分析:可以根据订单的收货地址, 分析订单的地域分布情况,了解不同地区的销售情况和潜力。
-
时间分析:可以根据订单的下单时间、付款时间等,进行时间分析,了解不同时间段的订单量和销售额变化情况,以及不同时间段的用户行为和消费习惯。
-
用户行为分析:可以根据用户的购买频次、购买金额、购买种类等,进行用户行为分析,了解用户的购买习惯和偏好,以及不同用户群体的消费特征。
-
产品分析:可以根据产品的销售数量、销售额、销售排名等,对产品进行分析,了解产品的市场表现和受欢迎程度,进而指导产品的进一步发展和优化。
-
渠道分析:可以根据不同的营销渠道,如搜索引擎、社交媒体等,进行渠道分析,了解不同渠道的转化率、ROI等指标,为优化营销策略提供依据。
一、导入
import numpy as np import pandas as pd
二、使用步骤
1.数据清洗
代码如下(示例):
data = pd.read_excel(r'C:\Users\B\Desktop\天猫订单.xlsx')
data.head()
data.info()
data.describe(include='all')
# 删除重复值
data.drop_duplicates(inplace=True)
data['星期'] = data['订单付款时间'].dt.dayofweek+1
data['小时'] = data['订单付款时间'].dt.hour
data
data['收货地址'].unique() # 获取唯一值
data['收货地址'] = data['收货地址'].str.replace('上海','上海市')
data['收货地址'] = data['收货地址'].str.replace('重庆','重庆市')
data['收货地址'] = data['收货地址'].str.replace('北京','北京市')
data['收货地址'] = data['收货地址'].str.replace('天津','天津市')
2.对订单状况进行分析
代码如下(示例):
# 有效订单:有付款,没有退款
valid_order = data[(data['订单付款时间'].notnull()) & (data['退款金额']==0)]
valid_order
# 退款订单:有付款,有退款
refund_order = data[data['退款金额']>0]
refund_order
# 未付款订单:没有付款
unpaid_order = data[data['订单付款时间'].isnull()]
unpaid_order # NaT not a time 时间空值 NaN not a number 数字空值
3.每种订单数占比情况
from pyecharts.charts import * import pyecharts.options as opts
饼图:
pie_data = [('有效订单',len(valid_order)),('退款订单',len(refund_order)),('未付款订单',len(unpaid_order))]
pie_data
pie =(
Pie()
.add('订单',pie_data,
label_opts=opts.LabelOpts(formatter='{b}:{d}%',font_size=15))
.set_global_opts(title_opts=opts.TitleOpts(title='各订单占比分析',
title_textstyle_opts=opts.TextStyleOpts(font_size=30,color='green'))
)
)
pie.render_notebook()
不同省份订单分析地图:
data2 = data[data['订单付款时间'].notnull()]
# 按省份统计订单量 name='订单量'把原来的值列改列名为'订单量'
province_order_count = data2.groupby('收货地址')['订单金额'].count().reset_index(name='订单量')
# 转成数据对
data_pair = dict(zip(province_order_count['收货地址'].tolist(),province_order_count['订单量'].tolist()))
data_pair
# 全国订单量地图
map = (
Map()
.add("",
[list(x) for x in data_pair.items()],
maptype='china',
is_map_symbol_show=False
)
# 视角配置项 --- 可选项
.set_global_opts(
visualmap_opts=opts.VisualMapOpts(is_show=True,min_=0,max_=3100,range_color=['red','orange','yellow','green','blue','indigo','violet'])
)
# 设置每块的阴影
.set_series_opts(itemstyle_opts=opts.TextStyleOpts(shadow_color="rgba(255,255,255,0.6)",shadow_blur=20)
)
)
map.render_notebook()
不同省份金额分析柱状图:
province_payment = data2.groupby('收货地址')[['订单金额','实付金额','退款金额']].sum().reset_index()
province_payment
# 把单位改成万
province_payment['订单金额']= province_payment['订单金额']/10000
province_payment['实付金额']= province_payment['实付金额']/10000
province_payment['退款金额']= province_payment['退款金额']/10000
# 按订单金额进行降序排序
province_payment.sort_values(ascending=False,by='订单金额',inplace=True)
bar = (
Bar()
.add_xaxis(province_payment['收货地址'].tolist())
# stack=True 柱状图堆叠 category_gap柱子间的间隙的比例
.add_yaxis('实付金额',round(province_payment['实付金额'],2).tolist(),stack=True,category_gap='30%')
.add_yaxis('退款金额',round(province_payment['退款金额'],2).tolist(),stack=True,category_gap='30%')
.set_global_opts(
xaxis_opts=opts.AxisOpts(name='省份',axislabel_opts={'rotate':90}),#给x轴添加名称,并旋转x轴标签
datazoom_opts=[opts.DataZoomOpts()] # 缩放条
)
.set_series_opts(label_opts=opts.LabelOpts(is_show=False)) # 去掉柱状图标签
)
# 订单金额
effect = (
EffectScatter()
.add_xaxis(province_payment['收货地址'].tolist())
.add_yaxis('订单金额',round(province_payment['订单金额'],2).tolist())
.set_series_opts(label_opts=opts.LabelOpts(position='top'))
)
# 层叠图
overlap = bar.overlap(effect)
grid = Grid()
grid.add(overlap,grid_opts=opts.GridOpts(pos_top='35%'))
grid.render_notebook()
散点图:
effect = (
EffectScatter()
.add_xaxis(province_payment['收货地址'].tolist())
.add_yaxis('订单金额',round(province_payment['订单金额'],2).tolist())
.set_series_opts(label_opts=opts.LabelOpts(position='top'))
)
effect.render_notebook()
总结
以上只是一些常见的分析维度和方法,具体的分析内容和方法还需要根据实际情况来确定,同时要结合实际业务场景和需求,进行深入的数据分析和挖掘。