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 | 销量 | |
---|---|---|
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 optsfrom pyecharts.charts import Linex=[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点又有一个小高峰,所以这两个时间段搞促销效果会比较好!
-完-
赞 (0)