【导语】本篇文章是关于某化妆品企业的销售分析。从分析思路思路开始带大家一步步的用python进行分析,找出问题,并提出解决方案的整个流程。
需求:希望全面了解此某妆品企业的销售情况,帮助企业运营领导层了解企业整体销售运营情况及商品销售情况,为该企业的营销策略提供相对应的建议和销售策略。
业务分析流程
1、 场景(诊断现状)
对象:用户;销售
关注点:找到影响销售的增长因素
目标:发现问题&提出解决方案
2、需求拆解
分析销售趋势,找到影响企业营收增长的商品或区域
按月份销售趋势图(整体)
商品销售额对比(一级、二级,找出最低、最高)
区域销售额对比(下钻:区、省,找出最低、最高)
探索不同商品的销售状况,为企业的商品销售,提出策略建议
不同月份的各个产品的销售额占比情况
产品相关分析
分析用户特征、购买频率、留存率等
购买频率分布
复购率(重复购买用户数量(两天都有购买过算重复)/用户数量)
同期群分析(按月)
3、代码实现
获取数据(excel)
为某化妆品企业 2019 年 1 月-2019 年 9 月每日订单详情数据和企业的商品信息数据,包括两个数据表,销售订单表和商品信息表。其中销售订单表为每个订单的情况明细,一个订单对应一次销售、一个订单可包含多个商品。
import pandas as pd import matplotlib.pyplot as plt import matplotlib as mpl mpl.rcParams['font.family'] = 'SimHei' import numpy as np import warnings warnings.filterwarnings("ignore") data = pd.read_excel('C:/Users/cherich/Desktop/日化.xlsx',encoding='gbk') data.head() 复制代码
data_info = pd.read_excel('C:/Users/cherich/Desktop/日化.xlsx',encoding='gbk',sheet_name='商品信息表') data_info 复制代码
数据清洗和加工
data = data.dropna() # 订购数量结尾有字符'个' data['订购数量'] = data['订购数量'].apply(lambda x:str(x)[:-1] if str(x)[-1] == '个' else x) data['订购数量'] = data['订购数量'].astype(int) # 订购数量结尾有字符'元' data['订购单价'] = data['订购单价'].apply(lambda x:str(x)[:-1] if str(x)[-1] == '元' else x) data['订购单价'] = data['订购单价'].astype(int) # 日期里有特殊字符 2019#3#11 def proess_date(df): pos = str(df).find('#') if pos!= -1: df = str(df).split('#') return df[0]+'-'+df[1]+'-'+df[2] else: return df # res = proess_date(df ='2019#3#11') data['订单日期'] = data['订单日期'].apply(proess_date) data['订单日期'] = data['订单日期'].apply(lambda x:str(x).replace('年','-').replace('月','-') if '年' in str(x) else x ) data['订单日期'] = pd.to_datetime(data['订单日期'])` #data.info() data = data[data.duplicated()==False] data['所在省份'].nunique() data['月份'] = data['订单日期'].apply(lambda x:str(x).split('-')[1])` data 复制代码
数据可视化
# 两张表数据合并 total_