数据分析项目实战:物流行业数据分析

概要

素材:链接:https://pan.baidu.com/s/1FVOArEQD2v2JzwNi730mZg?pwd=1234 
提取码:1234 
--来自百度网盘超级会员V6的分享

某企业销售的6种商品所对应的送货及用户反馈数据

解决问题

1、配送服务是否存在问题
2、是否存在尚有潜力的销售区域
3、商品是否存在质量问题

结论:

1、货品4→西北,货品2→马来西亚两条线路存在较大问题,急需提升时效
2、货品2在华东地区还有较大市场空间,适合加大投入,同时货品2在西北配送时效长,用户拒收率高,从成本角度考虑,应该减少投入
3、货品1、2、4质量存在问题,建议扩大抽检范围,增大质检力度

分析过程

一:数据清洗:
① 重复值、缺失值、格式调整
② 异常值处理(比如:销售金额存在等于0的,数量和销售金额的标准差都在均值的8倍以上等)
import os
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt 
plt.rcParams['font.sans-serif'] = 'SimHei' # 设置中文显示
data = pd.read_csv('data_wuliu.csv',encoding='gbk')
# 删除重复行inplace表示在原数据上进行删除
data.drop_duplicates(keep='first',inplace=True)

"""删除空值(axis=0表示按行删除,hou有两个值any和all,any表示只要有一个空值就删除
all表示这一行所有为空的时候才能删除)inplace表示在原数据上进行删除"""
data.dropna(axis=0,how='any',inplace=True)

# drop删除某一行,inplace表示在原数据上进行删除
data.drop(columns=['订单行'],inplace=True,axis=1)

"""!!!注意,这里有一个坑,当我们第一次删除某一行之后因为我们是在原数据上
删除,当我们第二次运行的时候原数据上的【订单号行】已经不再了,会报错。%%bash们要先
重新一下导入数据在运行"""
# print(data.info())
# 运行完上面的操作后行的索引会乱,我们要跟新一下数据索引
data.reset_index(drop=True,inplace=True)
data

 

 二:销售金额格式不对(万元|元,逗号问题),数据类型需要转换成int|float。#取出销售金额列,对每一个数据进行清洗,编写自定义过滤函数:删除逗号,转成float,如果是万元则*10000,否则,删除元

def data_deal(number):
    if number.find('万元')!=-1: #查看数据是万元还元,是万元就去除万元和逗号在转成float类型乘1000
        number_new=float(number[:number.find('万元')].replace(',',''))*10000
    else:
        number_new=float(number.replace('元','').replace(',',''))
    return number_new
# 这里运行第二次会报错,和上面的注意点一样
data['销售金额']=data['销售金额'].map(data_deal)

 

 销售金额==0,采用删除方法,因为数据量很小

data=data[data['销售金额']!=0]
data.describe()
# 对于数据很大的情况也就是数据右偏,这电商行业中很正常2/8分布,无需处理。

 

 将销售时间列的日期格式转成时间格式,再新建一列来保存当前订单的月份

data['销售时间']=pd.to_datetime(data['销售时间'])
data['月份']=data['销售时间'].apply(lambda x:x.month)
data

 

 

三、数据分析并可视化

1、配送服务是否存在问题

unstack的作用:unstack() 则为stack的逆函数,即把一维表转化成二维表的过程

stack:stack()就是把二维表转化成一维表(stack为堆叠的意思,就是把所有的index都堆在行上)

data['货品交货状况'] = data['货品交货状况'].str.strip() # 去除可能存在的多余空格
data1 = data.groupby(['月份','货品交货状况']).size().unstack() # 按照月份和交货状况分组
data1['按时交货率'] = data1['按时交货']/(data1['按时交货']+data1['晚交货']) # 新建一列来计算按时交货率
data1
#从按时交货率来看,第四季度低于第三季度,猜测可能是气候原因造成

 

 地区维度:分析各个地区的交货情况

data1 = data.groupby(['销售区域','货品交货状况']).size().unstack() # 按照销售区域和货品交货状况分组,分析各个地区是否按时交货
data1['按时交货率'] = data1['按时交货']/(data1['按时交货']+data1['晚交货'])  # 判断各个地区的交货情况
print(data1.sort_values(by='按时交货率',ascending=False))  # 排序更容易观察
#西北地区存在突出的延时交货问题,急需解決

 

 

 货品维度:分析各个货品的交货情况

data1 = data.groupby(['货品','货品交货状况']).size().unstack()
data1['按时交货率'] = data1['按时交货']/(data1['按时交货']+data1['晚交货'])
print(data1.sort_values(by='按时交货率',ascending=False))
#货品4晚交货情况非常严重,其余货品相对交货

 

 货品和销售区维度:对货品,销售区域,货品交货状况分组,分析各个货品在各个地区的交货情况:

data1 = data.groupby(['货品','销售区域','货品交货状况']).size().unstack()
data1['按时交货率'] = data1['按时交货']/(data1['按时交货']+data1['晚交货'])
print(data1.sort_values(by='按时交货率',ascending=False))
#销售区域:最差在西北地区,货品有1和4,主要是货品4送过较晚导致
#货品:最差的货品2,主要送往华东和马来西亚,主要是马来西亚的送货较晚导致。

 

 2、是否存在尚有潜力的销售区域

月份维度:按照月份和货品分组后对数量求和,分析各个月份的货品销售情况,绘制折线图更容易观察

data1 = data.groupby(['月份','货品'])['数量'].sum().unstack()
data1.plot(kind='line')
# 货品2在10月和12月份,销量猛增,原因猜测有二:1.公司加大营销力度  2.开发了新的市场(后续有结论)

 

 区域维度:将销售区域和货品分组后对数量求和,分析各个区域的货品销售情况

data1 = data.groupby(['销售区域','货品'])['数量'].sum().unstack()
data1
# 从销售区域看,每种货品销售区域为1~3个,货品1有三个销售区域,货品2有两个销售区域,其余货品均有1个销售区域

 

 月份和区域维度:将月份,销售区域,货品分组后对数量求和,分析各个月份中各个销售区域的货品销售情况

data1 = data.groupby(['月份','销售区域','货品'])['数量'].sum().unstack()
data1['货品2']
#货品2在10,12月份销量猛增,原因主要发生在原有销售区域(华东)
#同样,分析出在7,8,9,11月份销售数量还有很大提升空间,可以适当加大营销力度

 

 3.商品是否存在质量问题

对货品和销售区域进行分组在对货品用户反馈(拒货,质量合格,反修)进行求和,然后计数出各个货品在各个地区的用户反馈情况,然后算出各个货品在各个地区的拒货率,返修率,合格率。排序后就可以分析出那个货品有质量问题

data['货品用户反馈'] = data['货品用户反馈'].str.strip()  #取出首位空格
data1 = data.groupby(['货品','销售区域'])['货品用户反馈'].value_counts().unstack()
data1['拒货率'] = data1['拒货'] /data1.sum(axis=1)  #按行进行求和汇总
data1['返修率'] = data1['返修'] /data1.sum(axis=1)
data1['合格率'] = data1['质量合格'] /data1.sum(axis=1)
data1.sort_values(['合格率','返修率','拒货率'],ascending=False)

 货品3.6.5合格率均较高,返修率比较低,说明质量还可以
货品1.2.4合格率较低,返修率较高,质量存在一定的问题,需要改善
货品2在马拉西亚的拒货率最高,同时,在货品2在马拉西亚的按时交货率也非常低。猜测:马来西亚人对送货的时效性要求较高,如果达不到,则往往考虑拒货。
考虑到货品2主要在华东地区销售量大,可以考虑增大在华东的投资,适当较小马来西亚的投入。

 

小结

1、货品4→西北,货品2→马来西亚两条线路存在较大问题,急需提升时效
2、货品2在华东地区还有较大市场空间,适合加大投入,同时货品2在西北配送时效长,用户拒收率高,从成本角度考虑,应该减少投入
3、货品1、2、4质量存在问题,建议扩大抽检范围,增大质检力度
  • 14
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值