python超市售货统计程序_零售超市项目销售数据分析(Python)

一、项目背景:现有一家零售超市2017-2020年的订单信息,2020年各销售指标持续上升,但是利润总额年增长率下滑,净利润率下滑,分析该超市的历年销售业绩表现和利润构成,探究利润总额增长速度下滑的原因。

二、项目指标如下:

三、分析思路

利润总额是衡量企业盈利能力的核心指标,首先对利润总额公式进行拆分:

利润总额=销售总额-总成本=订单总量*平均单价-订单总量* 平均成本=订单总量* 平均定价*(1-折扣率) -(订单总量* 平均成本)

可以从订单总量、平均单价、总成本的角度探究利润增长速度下降的原因。

从逻辑关系上讲:

如果订单总量下降,其他因素不变得情况下,利润总额下降。

折扣力度加大,平均单价降低,如果打折后订单量大幅增加,平均单价降低的影响被抵消,利润总额会上升;如果打折后订单量没有大幅增加,利润总额会下降。

如果成本上升,其他因素不变的情况下,利润总额下降,在这个拆分公式里,成本属于会影响利润的独立因素。

所以,选取的主要指标为:销售总额、订单总量、利润总额,并计算出平均单价(销售总额/订单总量)和净利润率(利润总额/净利润率)。(注:案例提供了折扣数据,折扣影响平均单价,平均单价可以推算,折扣不易计算)

为探究利润增长下滑的原因,还需要找到是哪些月份,哪些产品,哪些地区的利润总额出现了异常,这些异常是由订单总量下降,还是由平均单价降低引起的,还是要归因于成本上升

(注:平均单价会影响订单总量;由于成本数据缺失,这里归因于成本上升只是一种逻辑上的假设,需要更多的成本数据验证)。

四、数据清洗

读取数据,查看基本特征

import pandas as pd

import numpy as np

pd.set_option('display.max_columns', None)

pd.set_option('display.max_rows', None)

np.set_printoptions(suppress=True)

pd.set_option('display.float_format', lambda x: '%.2f' % x)

# 读取数据

df = pd.read_excel('./super_market.xls')

print(df.head())

print(df.info())

行 ID 销售额 数量 折扣 利润

count 9959.000000 9959.000000 9959.000000 9959.000000 9959.000000

mean 5002.143187 1613.510807 3.768852 0.106406 215.638008

std 2886.562485 2641.237786 2.236739 0.187477 858.710532

min 1.000000 13.440000 1.000000 0.000000 -7978.320000

25% 2508.500000 250.460000 2.000000 0.000000 7.756000

50% 5003.000000 636.300000 3.000000 0.000000 74.200000

75% 7503.500000 1785.210000 5.000000 0.200000 277.200000

max 10000.000000 35621.355000 14.000000 0.800000 10108.280000

查找并处理空值、重复值,根据分析需要增加列

# 查看数据特征

print(df.info())

RangeIndex: 9959 entries, 0 to 9958

Data columns (total 20 columns):

# Column Non-Null Count Dtype

--- ------ -------------- -----

0 行 ID 9959 non-null int64

1 订单 ID 9959 non-null object

2 订单日期 9959 non-null datetime64[ns]

3 发货日期 9959 non-null datetime64[ns]

4 邮寄方式 9959 non-null object

5 客户 ID 9959 non-null object

6 客户名称 9959 non-null object

7 细分 9959 non-null object

8 城市 9959 non-null object

9 省/自治区 9959 non-null object

10 国家/地区 9959 non-null object

11 地区 9959 non-null object

12 产品 ID 9959 non-null object

13 类别 9959 non-null object

14 子类别 9959 non-null object

15 产品名称 9959 non-null object

16 销售额 9959 non-null float64

17 数量 9959 non-null int64

18 折扣 9959 non-null float64

19 利润 9959 non-null float64

dtypes: datetime64[ns](2), float64(3), int64(2), object(13)

#(1)查看空值、重复值(无空值重复值)

print(df.isnull().sum())

print(df.duplicated("订单ID").sum())

#(2)df['订单日期']和df['发货日期']自动导入的数据类型是datetime64[ns],

可以直接作为时间序列索引,进行重采样操作以查看时间趋势

# (3) 为统计用户的习惯下单时间,对订单日期的月、日、周取详细信息

比如2020-4-27,["月"]为4,["日"]为 27,["周"]为 1(星期一)

df["年"]=df["订单日期"].dt.year

df["月"]=df["订单日期"].dt.month

df["日"]=df["订单日期"].dt.day

df["星期"]=df["订单日期"].apply(lambda

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值