Python超市数据分析,圈定大促时机

前几天,一位开连锁超市的老板请我帮忙,让我分析一下超市近期的运营数据,通过分析,对超市近期的运行状况有了直观的了解,现在我把这个实例分享给大家

1.读取数据

数据存放在表格中,我们用pandas将其读出来

import pandas as pd
data=pd.read_csv('超市运营数据.csv',encoding='gbk',parse_dates=["成交时间"])
data

2.分析哪些类别的商品比较畅销

首先将数据按照类别ID进行分组,然后对分组后的销量进行求和,最后用reset_index重置索引

data_group=data.groupby("类别ID")["销量"].sum().reset_index()
data_group

为了取出销量最好的10类商品类别,我们可以对data_group按照“销量”进行排序,取出前10个

data_group=data_group.sort_values(by="销量",ascending=False).head(10)
data_group

类别ID销量
240922000003425.328
239922000002206.424
251923000006190.294
216915030104175.059
238922000001121.355
367960000000121.000
234920090000111.565
24992300000291.847
23792200000086.395
24792300000085.845

3.分析哪些商品比较畅销

分析逻辑与哪些类别的分析一致,代码如下:

data_group=data.groupby("商品ID")["销量"].sum().reset_index().sort_values(by="销量",ascending=False).head(10)
data_group

商品ID销量
829989059391.549
1829989072102.876
46930022232101.000
5233003196099.998
572998915772.453
4763002304164.416
5053002625562.375
72998905856.052
5103002700748.757
9033017126445.000

4.分析不同门店的销售额占比

首先计算销售额,并添加到数据中:

data['销售额']=data['销量']*data['单价']
data

按照门店进行分组,对分组后的营业额进行求和:

data_group=data.groupby('门店编号')['销售额'].sum().reset_index()
data_group

用饼图画出销售额占比:

from pyecharts import options as opts
from pyecharts.charts import Pie
x=list(data_group['门店编号'])
y=list(data_group['销售额'])
pie = (
    Pie()
   .add(
        "",
        [(i,j)for i,j in zip(x,y)],
        radius=["30%", "75%"],
        center=["50%", "50%"],
        rosetype="radius",
        label_opts=opts.LabelOpts(is_show=False),
    )
    .set_global_opts(title_opts=opts.TitleOpts(title="门店销售额占比"))
    .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {d}"))
)
pie.render_notebook()


5.分析超市客流高分高峰时间段

了解客流高峰时间段是很有必要的,可以帮助超市确定什么时间开展促销活动最合适

首先从日期中提取小时数

data['小时']=data['成交时间'].map(lambda x:int(x.strftime("%H")))
data

对小时和订单进行去重

traffic=data[['小时','订单ID']].drop_duplicates()
traffic

计算每小时的订单量

traffic_count=traffic.groupby("小时")["订单ID"].count()
traffic_count
小时
6      10
7      37
8     106
9     156
10    143
11     63
13     30
14     36
15     17
16     50
17     73
18     71
19     71
20     39
21     16
Name: 订单ID, dtype: int64

画出折线图:

import pyecharts.options as opts
from pyecharts.charts import Line
x=[str(i) for i in list(range(6,22))]
y=list(traffic_count)
line=(
    Line()
    .add_xaxis(xaxis_data=x)
    .add_yaxis(series_name="销量",y_axis=y, is_smooth=True)
    .set_global_opts(
        title_opts=opts.TitleOpts(title="不同时段销量折线图"),
        yaxis_opts=opts.AxisOpts(
                axistick_opts=opts.AxisTickOpts(is_show=True),
                splitline_opts=opts.SplitLineOpts(is_show=True),
            ),)
)
line.render_notebook()

从上图可以发现,8点至10点是超市一天中的销量高峰期,然后17至19点又有一个小高峰,所以这两个时间段搞促销效果会比较好!

长按识别下方二维码,并关注公众号

回复“超市”获取报告电子版


1.回复“PY”领取1GB Python数据分析资料

2.回复“BG”领取5GB 名企数据分析报告

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值