物流行业数据分析

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

本文从人—货—场对物流数据进行对应的分析:

人:人指的是消费者。随着消费等级的升级,消费者的认知有明显的升级。同时形成了我们判断产品或服务好坏的三个维度,即功能维度,内容维度,服务维度。通俗来讲就是产品的用户体验感。

货:货指的是商品。商品的功能不再是单一的,而是多边延伸,商品的价值需要多方面满足消费者的需求。对于物流行业,产品的创新,可以是专线路线的延伸拓展,可以是时效的提升,可以是服务的优化扩展,可以是安全的保障!

场:场是为了交易提供的场所。无论线上平台,还是线下门店,场的本质并没有变。深入到市场中去,了解客户需求,并以客户需求为导向进行经营理念、方式、范围的合理优化,将会吸引到更多的客户,拓宽客户群体。

总而言之,最终货和场将紧密围绕人而升级,以提升消费体验为最关键的目标。

待解决问题:
人:客户体验中的配送服务是否存在问题?
货: 商品是否存在质量问题?
场:是否存在尚有潜力的销售区域?

具体分析过程如下:
1、 数据清洗
2、 数据规整
3、数据分析并可视化

数据清洗(重复值、缺失值、异常值处理、格式调整)

import os
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = 'SimHei' #设置中文显示

导入相应的数据分析模块

data = pd.read_csv('E:\BaiduNetdiskDownload\data_wuliu.csv',encoding='gbk')
data.info()

数据读取及显示:

物流行业的大数据分析 物流行业数据分析思路_python

通过info()可以看出,包括10列数据,名字,数据量,格式等,可以得出:

1.订单号,货品交货情况,数量:存在缺失值,但是缺失量不大,可以删除

2.订单行,对分析无关紧要,可以考虑删除

3.销售金额格式不对(万元、元、逗号问题)数据类型需要转换成int或者float。

data.drop_duplicates(keep='first',inplace=True) #删除重复记录
data.info()

删除重复记录及结果显示:

物流行业的大数据分析 物流行业数据分析思路_数据_02

data.dropna(axis=0,how='any',inplace=True) #删除带有NA的行
data.info()

删除带有NA的行及结果显示:

物流行业的大数据分析 物流行业数据分析思路_物流行业的大数据分析_03


物流行业的大数据分析 物流行业数据分析思路_用户反馈_04

data.drop(columns='订单行',inplace=True,axis=1) #删除订单行的数据
data.info()

删除订单行的数据及结果显示

物流行业的大数据分析 物流行业数据分析思路_用户反馈_05

data

查看数据

物流行业的大数据分析 物流行业数据分析思路_物流行业的大数据分析_06

data.reset_index(drop=True,inplace=True)  #更新索引,drop=True:是把原来的索引index列删除,重置index
data

物流行业的大数据分析 物流行业数据分析思路_物流行业的大数据分析_07


观察到,销售金额列的数值单位存在不统一问题,需要进一步处理:

#取出销售金额列,对每一个数据进行清洗

#编写自定义过滤函数:删除逗号,转成float,如果是万元则*10000,否则,删除元

def data_deal(number):
    if number.find('万元')!= -1: #找到带有万元的,取出数字,去掉逗号,转成float,*10000
        number_new = float(number[:number.find('万元')].replace(',',''))
        pass
    else: #找到带有元的,删除元,删除逗号,转成float
        number_new = float(number.replace('元','').replace(',',''))
        pass
    return number_new
data['销售金额'].map(data_deal)

物流行业的大数据分析 物流行业数据分析思路_python_08


得到我们所需要的统一数据格式,方便后续处理。

data.describe() #数据的描述性分析

物流行业的大数据分析 物流行业数据分析思路_数据分析_09


通过观察发现数据右偏 平均值远远大于中位数

其中销售金额==0,采用删除方法,因为数据量很小
data = data[data['销售金额']!=0]
data
销售金额和销售数量存在严重右偏现象,在电商领域2/8很正常,无需处理。

物流行业的大数据分析 物流行业数据分析思路_python_10


数据规整(增加辅助列)

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

物流行业的大数据分析 物流行业数据分析思路_python_11


增加辅助列:月份

数据分析并可视化

PART1 货品配送服务分析

#1.配送服务是否存在问题

(a.月份维度b.销售区域维度c.货品维度d.货品和销售区域结合)

a.月份维度

data['货品交货状况']=data['货品交货状况'].str.strip()
data1= data.groupby(['月份','货品交货状况']).size().unstack()
data1

物流行业的大数据分析 物流行业数据分析思路_物流行业的大数据分析_12

data1['按时交货率'] = data1['按时交货']/(data1['按时交货']+data1['晚交货'])
data1

物流行业的大数据分析 物流行业数据分析思路_用户反馈_13


从按时交货率来看,第四季度低于第三季度,猜测可能是气候原因造成的。

b.销售区域维度

data1= data.groupby(['销售区域','货品交货状况']).size().unstack()
data1['按时交货率'] = data1['按时交货']/(data1['按时交货']+data1['晚交货'])
data1

物流行业的大数据分析 物流行业数据分析思路_用户反馈_14

对区域的按时交货率进行排序
print(data1.sort_values(by='按时交货率',ascending=False))

物流行业的大数据分析 物流行业数据分析思路_python_15


从数据知西北地区存在严重的交货延迟问题,急需解决。

c.货品维度

data1= data.groupby(['货品','货品交货状况']).size().unstack()
data1['按时交货率'] = data1['按时交货']/(data1['按时交货']+data1['晚交货'])
data1
# 对货品维度的按时交货率进行排序
print(data1.sort_values(by='按时交货率',ascending=False))

物流行业的大数据分析 物流行业数据分析思路_用户反馈_16


货品4的交货情况非常严重,其余货品相对交货状况较好

d.货品和销售区域结合

data1= data.groupby(['销售区域','货品','货品交货状况']).size().unstack()
data1['按时交货率'] = data1['按时交货']/(data1['按时交货']+data1['晚交货'])
print(data1.sort_values(by='按时交货率',ascending=False))

物流行业的大数据分析 物流行业数据分析思路_数据分析_17


销售区域:最差在西北地区,货品有1和4,主要是货品4送货较晚导致

货品:最差的货品2,主要送往华东和马来西亚,主要是马来西亚送货较晚导致

同理我们可以分析货品和月份维度、销售区域和月份维度的关系。

PART2 销售区域潜力分析

2.是否存在尚有潜力的销售区域(a.月份维度b.销售区域维度c.月份和销售区域结合)

a 月份维度

data1=data.groupby(['月份','货品'])['数量'].sum().unstack()
data1

物流行业的大数据分析 物流行业数据分析思路_物流行业的大数据分析_18

data1.plot(kind='line')

物流行业的大数据分析 物流行业数据分析思路_用户反馈_19


货品2在10月和12月份,销量猛增,原因猜测有二:1.公司加大营销力度,2.开发了新的市场。

b 销售区域

data1=data.groupby(['销售区域','货品'])['数量'].sum().unstack()
data1

物流行业的大数据分析 物流行业数据分析思路_python_20


从销售区域来看,每种货品销售区域为1~3个,货品1有3个销售区域,货品2有2个销售区域,其余货品均有1个销售区域。

c 月份和区域维度

data1=data.groupby(['月份','销售区域','货品'])['数量'].sum().unstack()
data1

物流行业的大数据分析 物流行业数据分析思路_python_21


物流行业的大数据分析 物流行业数据分析思路_物流行业的大数据分析_22

data1['货品2']

物流行业的大数据分析 物流行业数据分析思路_数据分析_23


物流行业的大数据分析 物流行业数据分析思路_用户反馈_24


货品2在10月,12月份销量猛增,主要发生在原有销售区域(华东地区)。

同样,分析出在7、8、9、11月份销售数量还有很大的提升空间,可以适当加大营销力度。

PART3 商品质量分析

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

data['货品用户反馈']= data['货品用户反馈'].str.strip()  ##去除字符串首尾空格
data['货品用户反馈']

物流行业的大数据分析 物流行业数据分析思路_数据_25

data1=data.groupby(['货品','销售区域'])['货品用户反馈'].value_counts()
data1

物流行业的大数据分析 物流行业数据分析思路_物流行业的大数据分析_26

data1=data.groupby(['货品','销售区域'])['货品用户反馈'].value_counts().unstack()
data1

物流行业的大数据分析 物流行业数据分析思路_用户反馈_27

print(data1.sum(axis=1))

物流行业的大数据分析 物流行业数据分析思路_python_28

data1['拒货率']= data1['拒货']/data1.sum(axis=1)
data1['返修率']= data1['返修']/data1.sum(axis=1)
data1['合格率']= data1['质量合格']/data1.sum(axis=1)
data1

物流行业的大数据分析 物流行业数据分析思路_数据分析_29

data1.sort_values(['合格率','返修率','拒货率'],ascending = False) #降序排序

物流行业的大数据分析 物流行业数据分析思路_python_30


1、货品3,6,5 合格率较高,返修率比较低,说明质量还可以

2、货品1,2,4,合格率较低,返修率较高,质量存在一定的问题,需要改善

3、货品2 在马来西亚的拒货率最高,同时货品2在马来西亚的按时交货率非常低。猜测马来西亚人对送货的时效性要求较高。

4、考虑到货品2主要在华东地区销售量大,可以考虑增大在华东的投资,适当减小马来西亚的投入。

总结:在本次分析中,主要利用了人货场分析思路进行分析,1、针对配送服务问题:通过计算按时交货率,发现货品4→西北,货品2→马来西亚两条线路存在较大问题,运输时效性方面需要大幅度的改进提升。2、销售区域潜力分析:发现货品2在华东地区还有较大的市场空间,适合加大投入,同时货品2在西北存在配送慢、用户拒收率高的问题,从投资成本考虑,应减少投入。3、商品质量问题分析:对商品的合格率,返修率,拒货率等指标进行了量化分析。货品1,2,4质量存在问题,建议扩大抽检范围,增大质检力度。