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

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 销量
240 922000003 425.328
239 922000002 206.424
251 923000006 190.294
216 915030104 175.059
238 922000001 121.355
367 960000000 121.000
234 920090000 111.565
249 923000002 91.847
237 922000000 86.395
247 923000000 85.845

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

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

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

商品ID 销量
8 29989059 391.549
18 29989072 102.876
469 30022232 101.000
523 30031960 99.998
57 29989157 72.453
476 30023041 64.416
505 30026255 62.375
7 29989058 56.052
510 30027007 48.757
903 30171264 45.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 名企数据分析报告

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐